窗口在WPF中显示事件?

时间:2012-02-08 10:11:42

标签: c# .net wpf xaml

我想在每次显示窗口时应用淡入淡出动画。如何从xaml做到这一点?该窗口可以隐藏,然后再次显示,因此我无法使用Loaded事件。

2 个答案:

答案 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()