如果MainWindow在WPF中失焦,则PopUp窗口仍然在屏幕上可见

时间:2013-08-09 09:50:24

标签: wpf popup

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

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

this.Owner = Application.Current.MainWindow;

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

1 个答案:

答案 0 :(得分:1)

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

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

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