我想在每次显示窗口时应用淡入淡出动画。如何从xaml做到这一点?该窗口可以隐藏,然后再次显示,因此我无法使用Loaded
事件。
答案 0 :(得分:43)
您可以使用ContentRendered事件或覆盖OnContentRendered虚拟方法,如下所示:
bool _shown;
protected override void OnContentRendered(EventArgs e)
{
base.OnContentRendered(e);
if (_shown)
return;
_shown = true;
// Your code here.
}
答案 1 :(得分:2)
你可以使用
<块引用>IsVisibleChanged
来自 WPF 窗口的事件;
然后在 EventMethod 中使用:
if((bool)e.IsVisible)
{
// It became visible
}
else
{
// It became hidden
}
这适用于打开一个新的 Window 实例,this.Show()、this.hide()、this.Close()