【发布时间】:2012-02-08 10:11:41
【问题描述】:
我想在每次显示我的窗口时应用淡入淡出动画。如何从 xaml 做到这一点?该窗口可以隐藏然后再次显示,因此我无法使用Loaded 事件。
【问题讨论】:
-
看看这个问题,可能会有所帮助:stackoverflow.com/questions/867656/…
我想在每次显示我的窗口时应用淡入淡出动画。如何从 xaml 做到这一点?该窗口可以隐藏然后再次显示,因此我无法使用Loaded 事件。
【问题讨论】:
您可以像这样使用 ContentRendered 事件或覆盖 OnContentRendered 虚拟方法:
bool _shown;
protected override void OnContentRendered(EventArgs e)
{
base.OnContentRendered(e);
if (_shown)
return;
_shown = true;
// Your code here.
}
【讨论】:
你可以使用
IsVisibleChanged
来自 WPF 窗口的事件;
然后在EventMethod中使用:
if((bool)e.IsVisible)
{
// It became visible
}
else
{
// It became hidden
}
这适用于打开一个新的 Window 实例,this.Show()、this.hide()、this.Close()
【讨论】: