对话框 XAML 和 Material Design WPF

Posted

技术标签:

【中文标题】对话框 XAML 和 Material Design WPF【英文标题】:Dialog XAML and Material Design WPF 【发布时间】:2018-12-24 10:28:53 【问题描述】:

我正在尝试在我的 WPF 应用程序中的 xaml 页面上弹出一个对话框。我正在使用Material Design In XAML Toolkit。

页面位于主窗口的框架内。我想让变暗的对话框背景一直位于主窗口中的菜单上。 (图片示例:Dialog background going over menu and full window)

在带有按钮的页面上,我有以下代码

<Button Command="x:Static materialDesign:DialogHost.OpenDialogCommand" 
                            Width="128" Grid.Row="3" Grid.Column="1" >
        <Button.CommandParameter>
            <system:DateTime></system:DateTime>
        </Button.CommandParameter>
        Popup
    </Button>

然后在我的主窗口中,我有以下代码:

        <DataTemplate DataType="x:Type system:DateTime">
            <StackPanel Margin="16">
                <TextBlock>Example!!</TextBlock>
                <Button  Margin="0 8 0 0" IsDefault="True" Command="x:Static materialDesign:DialogHost.CloseDialogCommand" Style="DynamicResource MaterialDesignRaisedDarkButton">Close</Button>
            </StackPanel>
        </DataTemplate>
    </ResourceDictionary>
</Window.Resources>

我也加入了

xmlns:system="clr-namespace:System;assembly=mscorlib"

当我运行应用程序时,我没有任何错误并且它打开了,但是名为“弹出”的按钮被禁用。但是当我在Material Design Demo 更改它时,这段代码确实可以在Material Design Demo 中运行和工作。

我是 XAML 的新手,这是我第一个使用这种语言的应用程序,因此非常感谢您的帮助!

【问题讨论】:

【参考方案1】:

您的 MainWindow.xaml 内容应如下所示

 <materialDesign:DialogHost Identifier="RootDialog">
     <materialDesign:DialogHost.DialogContent>
        <!--dialog content-->
    </materialDesign:DialogHost.DialogContent>
     <Grid>
       <!--your window cotnent-->
     </Grid>
 </materialDesign:DialogHost>

【讨论】:

以上是关于对话框 XAML 和 Material Design WPF的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Material Design for XAML 覆盖 ComboBox ToggleButton?

更改material-ui对话框显示的动画

Angular Material 2 对话框显得更暗

Angular2 Material Dialog css,对话框大小

移除 Material Design 对话框宿主背景颜色

Material-ui 样式对话框/模态背景