c# - WPF - 如果单击边界外则无法关闭窗口

标签 c# wpf xaml

我有一个用 ShowDialog() 打开的窗口。该窗口将在我之前的窗口的中心打开。要关闭此窗口并单击背景,我找到了解决方案:

protected override void OnDeactivated(EventArgs e)
{
   base.OnDeactivated(e);
   Close();
}

只有当我在任何窗口之外单击时,该解决方案才有效(请参见图片底部的括号)。但如果我点击我的窗口(右括号),我只会听到声音,什么也不会发生(OnDeactivated 不会触发)。

有什么想法吗? Example

最佳答案

因为 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/

相关文章:

c# - 需要在 HttpWebResponse 中访问 HttpOnly cookie

c# - 在 WPF 中以编程方式为动态组合框中的动态文本框设置数据绑定(bind)

.net - 列表框数据虚拟化和多选

c# - Style 对象不能影响它所应用的对象的 Style 属性

c# - 显示总行数 Grid.MVC 列表的最佳方式

c# - 如何从 C# 中的图像目录创建视频?

c# - jQuery AJAX 命中 Controller 操作但返回空字符串而不是部分 View

c# - 打开包含大量项目的组合框时 wpf UI 卡住

c# - 当用鼠标双击时 - 通过哪个按钮发现

WPF 网格数据绑定(bind)