WPF 界面颜色动态绑定(界面主题颜色绑定切换)
1、窗口/按钮 边框颜色动态绑定资源
首先在App.xaml文件中定义一个键值为“color”的单色笔刷,这个笔刷就是可以被用户改变的动态资源:
<SolidColorBrush x:Key="color" Color="SkyBlue" />
2、 设计一个界面:其原理与窗口样式相同。
<Border BorderBrush="{DynamicResource color}" BorderThickness="3" CornerRadius="5" Padding="4">
<Border BorderBrush="{DynamicResource color}" BorderThickness="3" CornerRadius="5" Background="{DynamicResource color}">
3、 然后回到主界面设计窗口,设置窗体的样式: 简单button样式
<Style x:Key="myButton" TargetType="Button">
<Setter Property="Margin" Value="5,2" />
<Setter Property="Background" Value="Blue" />
<Setter Property="Height" Value="25" />
<Setter Property="BorderBrush" Value="{DynamicResource color}" />
</Style>
按钮绑定样式:
<Button Style="{StaticResource myButton}"/>
“更新颜色”方法代码如下:
public void ChangeThemeColor(Color c)//更新颜色
{
this.Resources.Remove("color");
this.Resources.Add("color", new SolidColorBrush(c));
}
此方法首先移除资源“color”,然后再添加一个同名的新笔刷,这样就完成了动态替换工作。
可以把主题颜色写入配置文件中,然后软件启动时候加载, Load函数中,