【问题标题】:PopUp window is still visible on screen if the MainWindow is out of focus in WPF如果 MainWindow 在 WPF 中失焦,则弹出窗口在屏幕上仍然可见
【发布时间】:2013-08-09 09:50:24
【问题描述】:

我有一个带有弹出控件的 PopUp 窗口。有一个显示此 PopUp 的主窗口。 PopUp 在处理查询后显示数据需要时间。因此,在处理 PopUp 中的数据时,如果我最大化其他窗口,那么 PopUp 也会显示在其他窗口上。

我已将 PopUpWindow.xaml.cs 中 PopUp 窗口的 MainWindow 所有者设为:

this.Owner = Application.Current.MainWindow;

并且我已将 PopUp Window 的“StaysOpen”属性设置为 false。但问题仍然存在。如果其他窗口最大化,如何阻止 PopUp 在其他窗口上显示。

【问题讨论】:

  • 问题是什么?
  • 如果其他窗口最大化,如何阻止 PopUp 在其他窗口上显示。
  • 尝试Popup 将属性Visibility 设置为Collapsed。像这样:Visibility="Collapsed" 或代码:MyPopup.Visibility = Visibility.Collapsed;。
  • K T - 为什么你只接受了 16 个问题的 4 个答案?为什么你忽略任何 cmets?
  • 我已经纠正了我的错误并接受了答案。请不要误解我 MikroDel。

标签: wpf popup


【解决方案1】:

您可以在其所有者窗口被停用时显式关闭弹出窗口,即当另一个窗口获得焦点并到达顶部时,使用 Deactivated 事件:

    window.Deactivated += 
        (sender, args) => {
            thePopup.IsOpen = false;
        };

您可能还想捕获 IsOpen 状态并在窗口被激活时恢复它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-10-21
    • 2011-05-03
    • 2016-03-09
    • 1970-01-01
    • 2023-03-28
    • 1970-01-01
    • 2013-07-26
    • 1970-01-01
    相关资源
    最近更新 更多