C# WPF-can';如果单击外部边界,则无法关闭窗口

C# WPF-can';如果单击外部边界,则无法关闭窗口,c#,wpf,xaml,C#,Wpf,Xaml,我有一个窗口,可以用ShowDialog()打开。该窗口将在我上一个窗口的中心打开。要使用背景关闭此窗口,请单击“我找到了解决方案”: protected override void OnDeactivated(EventArgs e) { base.OnDeactivated(e); Close(); } 只有当我在任何窗口外单击时,该解决方案才起作用(查看图片底部的括号)。但如果我点击我的窗口(右括号),我只会听到那个声音,什么也不会发生(OnDeactivated不会处理)

我有一个窗口,可以用
ShowDialog()
打开。该窗口将在我上一个窗口的中心打开。要使用背景关闭此窗口,请单击“我找到了解决方案”:

protected override void OnDeactivated(EventArgs e)
{
   base.OnDeactivated(e);
   Close();
}
只有当我在任何窗口外单击时,该解决方案才起作用(查看图片底部的括号)。但如果我点击我的窗口(右括号),我只会听到那个声音,什么也不会发生(OnDeactivated不会处理)

有什么想法吗?

因为
ShowDialog
阻止您激活dialog的父窗口,因此不会进行激活更改,因此不会进行处理

您可以使用
Show
,以非模态的方式显示对话框窗体,以防您不“等待”调用代码,等待对话框完成并产生一些结果


如果您这样做,则会有一些解决方法,如回调解决方案或@BWA指出的链接。

您的窗口的可能副本可能是通过Show()尝试的,但我的窗口在打开时会立即关闭。。我想使用
Show
,但不幸的是,我需要等待该窗口先关闭。。。