我有一个用 ShowDialog()
打开的窗口。该窗口将在我之前的窗口的中心打开。要关闭此窗口并单击背景,我找到了解决方案:
protected override void OnDeactivated(EventArgs e)
{
base.OnDeactivated(e);
Close();
}
只有当我在任何窗口之外单击时,该解决方案才有效(请参见图片底部的括号)。但如果我点击我的窗口(右括号),我只会听到声音,什么也不会发生(OnDeactivated 不会触发)。
最佳答案
因为 ShowDialog
阻止您激活对话框的父窗口,因此不会进行任何激活更改,因此不会进行任何处理。
您可以使用Show
,以非模态方式显示对话框表单,以防您不“等待”调用代码以让对话框完成某些结果。
如果您这样做,有一些解决方法,例如回调解决方案或 how to close a WPF Dialog Window when the user clicks outside it @BWA 指出的链接。
关于c# - WPF - 如果单击边界外则无法关闭窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52516220/