我一直在尝试使用MaterialDesign for WPF在代码中动态渲染一个组框几天。在我收到另一个StackOverflow问题的帮助后,我能够使用下面一行的材料设计风格来渲染它:
childDef.Style = Application.Current.FindResource("MaterialDesignGroupBox") as Style;
我想要实现的是使用应用程序的已定义材质设计强调颜色渲染它,而不是作为资源" MaterialDesignGroupBox"的默认颜色的主要颜色。在Material Design的WPF演示项目中,这是他们在xaml中的表现方式:
<smtx:XamlDisplay Key="groupbox_4" Grid.Column="0" Grid.Row="1">
<GroupBox Header="Accent Header" Style="{DynamicResource MaterialDesignGroupBox}" Margin="16" materialDesign:ColorZoneAssist.Mode="Accent">
<TextBlock>My Content</TextBlock>
</GroupBox>
</smtx:XamlDisplay>
所以,我本来想要做的事情,我一直无法弄清楚到目前为止如何应用 materialDesign:ColorZoneAssist.Mode =&#34; Accent&#34; 在代码背后。我提前感谢任何人。
答案 0 :(得分:2)
默认GroupBox
样式(MaterialDesignGroupBox)uses an attached property来控制其内部ColorZone
的模式。您可以在后面的代码中设置附加属性,如下所示:
GroupBox groupBox = ...;
MaterialDesignThemes.Wpf.ColorZoneAssist.SetMode(groupBox, ColorZoneMode.Accent);