替换所有控件的前景颜色

时间:2014-08-13 20:39:34

标签: wpf xaml

要切换到黑暗主题,我目前正在切换合并的词典。 DarkTheme.xaml包含:

<SolidColorBrush x:Key="GlobalTextColor" Color="#FFFFFF" />
<SolidColorBrush x:Key="GlobalBackColor" Color="#000000" />

然后每个控件模板都有类似

的内容
Foreground="{DynamicResource GlobalTextColor}"

是否有一种更优雅的方式可以像高对比度主题一样替换所有文本(没有该主题的其他样式更改)或承诺动态资源绑定的性能损失?

2 个答案:

答案 0 :(得分:0)

这样的东西?

<Style x:Key="Highlight" TargetType="{x:Type Control}">
    <Setter Property="Foreground" Value="Red"/>
</Style>

这会将每个控件上的所有前景设置为红色。 这样您就可以将其作为静态资源引用。

来源:Can you define multiple TargetTypes for one XAML style?

或其他链接:How to target all controls (WPF Styles)

答案 1 :(得分:0)

您可以从解决方案资源管理器(在visual studio中)右键单击项目,然后选择打开混合。然后将所需部分应用于样式,然后将其保存在那里。您可以打开另一个页面或添加这些样式或您可以将其添加到同一页面属性,只需选择属性并为其提供已保存的样式。