2

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

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

this.Owner = Application.Current.MainWindow;

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

4

1 回答 1

2

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

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

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

于 2013-08-09T10:52:00.723 回答