Caliburn.Micro 查看模型中的 MaterialDesignXaml 对话框

MaterialDesignXaml dialog from Caliburn.Micro View Model

我在从视图模型显示对话框时遇到问题。问题是 "underlying content is not dimmed and disabled" 正如文档所说的那样。如果我点击底层视图,连接到关闭命令的对话框中的按钮有时会被禁用,用户无法点击它。

我在我的 MainView 中这样定义了 DialogHost(也在 ShellView 中尝试过):

<materialDesign:DialogHost
        HorizontalAlignment="Center"
        VerticalAlignment="Center"
        CloseOnClickAway="True" />

在我的 MainViewModel 中,我显示的对话框如下:

   Dim errView As New ErrorView
   Dim res = Await DialogHost.Show(errView)

我将关闭命令连接到 ErrorView 对话框中的按钮,如下所示:

Command="{x:Static materialDesign:DialogHost.CloseDialogCommand}"

你的问题出在DialogHost的定义上;你把它作为一个空元素。

DialogHost 是一个 ContentControl。里面的一切都会变得暗淡。所以你把它定义在你的 main Window/Page XAML 的根目录下,有点像:

<materialDesign:DialogHost CloseOnClickAway="True">
  <StackPanel>
    <TextBlock>Hello World</TextBlock>
    <TextBlock>This is the main content of my application</TextBlock>
  </StackPanel>
</materialDesign:DialogHost>