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)
,它调用子类 FileOpenDialog
的 WasOpenRecently
函数。如果对话框在最后 250 毫秒内关闭,则此函数 returns true
/false
。如果我们 true
回来,我们 e.Cancel();
取消 DialogHost
的关闭事件。
我在 <materialDesign:DialogHost CloseOnClickAway="True" />
中有一个控件可以打开系统 FileOpenDialog
。如果我在 FileOpenDialog
中双击打开文件,主机中的背景对话框将关闭。我已经缩小了文件对话框在第二个 mouse-down 上关闭并且应用程序响应随后的 mouse-up 事件。
关于如何防止这种情况有什么建议吗?
所以我想出了一个解决方案,尽管感觉有点老套。 <materialDesign:DialogHost />
有一个 属性 DialogClosing
允许您在触发关闭事件时指定回调。在代码隐藏中,我创建了一个事件处理程序 public void MainViewModel_CheckIfDialogShouldClose(object sender, DialogClosingEventArgs e)
,它调用子类 FileOpenDialog
的 WasOpenRecently
函数。如果对话框在最后 250 毫秒内关闭,则此函数 returns true
/false
。如果我们 true
回来,我们 e.Cancel();
取消 DialogHost
的关闭事件。