窗口在WPF中显示事件?

Pom*_*oma 26 .net c# wpf xaml

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

ezo*_*tko 45

您可以使用ContentRendered事件或覆盖OnContentRendered虚拟方法,如下所示:

    bool _shown;

    protected override void OnContentRendered(EventArgs e)
    {
        base.OnContentRendered(e);

        if (_shown)
            return;

        _shown = true;

        // Your code here.
    }
Run Code Online (Sandbox Code Playgroud)

  • 真的需要使用_shown变量吗?可以渲染两次或更多次? (5认同)

小智 7

你可以使用

是否可见已更改

来自 WPF 窗口的事件;

然后在EventMethod中使用:

if((bool)e.IsVisible)
{
   // It became visible
}
else
{
  // It became hidden
}
Run Code Online (Sandbox Code Playgroud)

这适用于打开一个新的 Window 实例this.Show()this.hide()this.Close()