【问题标题】:materialDesign:DialogHost dialog closes when trying to open file from FileOpenDialogmaterialDesign:DialogHost 对话框在尝试从 FileOpenDialog 打开文件时关闭
【发布时间】:2019-08-26 13:16:19
【问题描述】:
我在<materialDesign:DialogHost CloseOnClickAway="True" /> 中有一个控件,可以打开系统FileOpenDialog。如果我双击FileOpenDialog 打开文件,主机中的背景对话框将关闭。我缩小了文件对话框在第二个 mouse-down 时关闭并且应用程序响应后续 mouse-up 事件的范围。
关于如何防止这种情况的任何建议?
【问题讨论】:
标签:
c#
wpf
mouseevent
double-click
material-design-in-xaml
【解决方案1】:
所以我想出了一个解决方案,尽管它感觉有点骇人听闻。 <materialDesign:DialogHost /> 有一个属性DialogClosing,允许您在触发关闭事件时指定回调。在代码隐藏中,我创建了一个事件处理程序public void MainViewModel_CheckIfDialogShouldClose(object sender, DialogClosingEventArgs e),它调用子类FileOpenDialog 的WasOpenRecently 函数。如果对话框在最后 250 毫秒内关闭,则此函数返回 true/false。如果我们得到true 回来,我们e.Cancel(); 取消DialogHost 的关闭事件。