我在<materialDesign:DialogHost CloseOnClickAway="True" />
中有一个控件可以打开系统FileOpenDialog
。如果双击FileOpenDialog
打开文件,则主机中的背景对话框关闭。我将其范围缩小到第二个 mouse-down 文件对话框关闭,并且应用程序响应随后的 mouse-up 事件。
关于如何防止这种情况的任何建议?
答案 0 :(得分:0)
所以我想出了一个解决方案,尽管感觉有点骇人听闻。 <materialDesign:DialogHost />
具有属性DialogClosing
,该属性使您可以在触发关闭事件时指定回调。在后面的代码中,我创建了一个事件处理程序public void MainViewModel_CheckIfDialogShouldClose(object sender, DialogClosingEventArgs e)
,该事件处理程序调用了子类FileOpenDialog
的{{1}}函数。如果对话框在最近的250毫秒内关闭,则此函数返回WasOpenRecently
/ true
。如果我们退回false
,我们将true
取消e.Cancel();
的闭幕活动。