如果在WPF中主窗口失去焦点,弹出窗口仍然可见

3

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

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

this.Owner = Application.Current.MainWindow;

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

问题是什么? - undefined
1
如何阻止弹出窗口在其他窗口最大化时显示。 - undefined
尝试将Popup的属性Visibility设置为*Collapsed*。像这样:Visibility="Collapsed"或者在代码中:MyPopup.Visibility = Visibility.Collapsed; - undefined
1
K T - 为什么你只接受了16个问题中的4个答案?还有,为什么你忽略了所有的评论呢? - undefined
我已经纠正了我的错误并接受了答案。请不要误解我,MikroDel。 - undefined
@Anatoliy 我尝试过使用Visibility="Collapsed",但没有起作用。 - undefined
1个回答

2

当弹出窗口的所有者窗口失去焦点并被其他窗口置顶时,您可以使用Deactivated事件明确地关闭弹出窗口:

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

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接