【问题标题】:Window shown event in WPF?WPF中的窗口显示事件?
【发布时间】:2012-02-08 10:11:41
【问题描述】:

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

【问题讨论】:

标签: c# .net wpf xaml


【解决方案1】:

您可以像这样使用 ContentRendered 事件或覆盖 OnContentRendered 虚拟方法:

    bool _shown;

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

        if (_shown)
            return;

        _shown = true;

        // Your code here.
    }

【讨论】:

  • 真的需要使用_shown变量吗?可以调用两次或多次渲染吗?
  • 是的,当您的表单显示两次或更多时。大多数情况下,当表单是子表单并且需要用 1 个实例一次又一次地显示和关闭时。
【解决方案2】:

你可以使用

IsVisibleChanged

来自 WPF 窗口的事件;

然后在EventMethod中使用:

if((bool)e.IsVisible)
{
   // It became visible
}
else
{
  // It became hidden
}

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-24
    • 1970-01-01
    相关资源
    最近更新 更多