我有一个控制在<materialDesign:DialogHost CloseOnClickAway="True" />
内打开一个系统FileOpenDialog
。如果我双击FileOpenDialog
打开文件,主机中的后台对话框将关闭。我已经缩小了文档对话框在第二次鼠标按下时关闭,应用程序响应后续的鼠标按下事件。
有关如何防止这种情况的任何建议?
所以我提出了一个解决方案,尽管它感觉有点hackish。 <materialDesign:DialogHost />
有一个属性DialogClosing
,允许您在触发关闭事件时指定回调。在代码隐藏中,我创建了一个事件处理程序public void MainViewModel_CheckIfDialogShouldClose(object sender, DialogClosingEventArgs e)
,它调用了一个子类FileOpenDialog
的WasOpenRecently
函数。如果对话框在最后250毫秒内关闭,则此函数返回true
/ false
。如果我们回到true
,我们e.Cancel();
取消DialogHost
的结束比赛。