materialDesign:DialogHost 尝试从 FileOpenDialog 打开文件时对话框关闭

materialDesign:DialogHost dialog closes when trying to open file from FileOpenDialog

我在 <materialDesign:DialogHost CloseOnClickAway="True" /> 中有一个控件可以打开系统 FileOpenDialog。如果我在 FileOpenDialog 中双击打开文件,主机中的背景对话框将关闭。我已经缩小了文件对话框在第二个 mouse-down 上关闭并且应用程序响应随后的 mouse-up 事件。

关于如何防止这种情况有什么建议吗?

所以我想出了一个解决方案,尽管感觉有点老套。 <materialDesign:DialogHost /> 有一个 属性 DialogClosing 允许您在触发关闭事件时指定回调。在代码隐藏中,我创建了一个事件处理程序 public void MainViewModel_CheckIfDialogShouldClose(object sender, DialogClosingEventArgs e),它调用子类 FileOpenDialogWasOpenRecently 函数。如果对话框在最后 250 毫秒内关闭,则此函数 returns true/false。如果我们 true 回来,我们 e.Cancel(); 取消 DialogHost 的关闭事件。