WPF MaterialDesign:后台代码设置ColorZoneAssist.Mode及GroupBox强调色
在WPF MaterialDesign中通过后台代码设置GroupBox为强调色样式
针对你遇到的这两个问题,我来一步步帮你搞定:
1. 后台代码设置ColorZoneAssist.Mode="Accent"的方法
在WPF里,附加属性的后台设置得用对应类的静态Set方法。对于MaterialDesign的ColorZoneAssist.Mode,你需要调用MaterialDesignThemes.Wpf.ColorZoneAssist.SetMode这个方法,传入目标控件和对应的ColorZoneMode枚举值就行。
2. 给动态创建的GroupBox应用强调色样式
你已经成功用代码给GroupBox加上了MaterialDesign的基础样式,现在只需要在设置样式之后,再添一行代码指定用强调色模式就可以了。完整的代码示例如下:
// 先创建GroupBox实例 GroupBox dynamicGroupBox = new GroupBox(); dynamicGroupBox.Header = "我的动态GroupBox"; // 可以加个标题测试效果 // 应用MaterialDesign的GroupBox样式 dynamicGroupBox.Style = Application.Current.FindResource("MaterialDesignGroupBox") as Style; // 关键一步:设置为强调色模式 MaterialDesignThemes.Wpf.ColorZoneAssist.SetMode(dynamicGroupBox, MaterialDesignThemes.Wpf.ColorZoneMode.Accent); // 最后把GroupBox添加到你的容器里(比如StackPanel) yourTargetContainer.Children.Add(dynamicGroupBox);
额外说明
- 只要你的应用已经正确配置了MaterialDesign的资源,而且已经定义了自定义的强调色(比如在App.xaml里设置了
AccentHueMidBrush这类资源),设置Mode="Accent"之后,GroupBox就会自动用上你定义的强调色,不用额外做其他配置。 - 如果样式没生效,可以检查下App.xaml里有没有正确引用MaterialDesign的资源字典,确保
MaterialDesignGroupBox这个样式确实在应用资源里存在。
内容的提问来源于stack exchange,提问作者georgehatzi
相关产品推荐
相关产品推荐

