如果主窗口在WPF中不对焦,则弹出窗口在屏幕上仍然可见

如果主窗口在WPF中不对焦,则弹出窗口在屏幕上仍然可见,wpf,popup,Wpf,Popup,我有一个带有弹出控件的弹出窗口。有一个主窗口显示这个弹出窗口。弹出窗口在处理查询后显示数据,这需要时间。因此,当弹出窗口中的数据正在处理时,如果我最大化其他窗口,则弹出窗口也会显示在其他窗口上 我已将PopUpWindow.xaml.cs中弹出窗口的主窗口所有者设置为: this.Owner = Application.Current.MainWindow; 我已将弹出窗口的“StaysOpen”属性设置为false。但问题仍然存在。如果其他窗口最大化,如何停止弹出窗口在其他窗口上显示。当其所

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

我已将PopUpWindow.xaml.cs中弹出窗口的主窗口所有者设置为:

this.Owner = Application.Current.MainWindow;

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

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


您可能还希望捕获IsOpen状态,并在激活窗口时将其还原。

问题是什么?如果其他窗口最大化,如何停止在其他窗口上显示弹出窗口。尝试使用
PopUp
将属性
可见性设置为
折叠的
。如下所示:
Visibility=“Collapsed”
或在代码中:
MyPopup.Visibility=Visibility.Collapsed
.K T-为什么你只接受4个答案,回答16个问题?你为什么忽视任何评论?我已经纠正了我的错误并接受了答案。请不要误解我,米克罗德尔。
    window.Deactivated += 
        (sender, args) => {
            thePopup.IsOpen = false;
        };