UI代码
<Window x:Class="WpfApp1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:WpfApp1"
mc:Ignorable="d"
Title="MainWindow" Height="450" Width="800">
<Window.Resources>
<!--笔刷资源-->
<SolidColorBrush x:Key="SolidColor" Color="Red"/>
</Window.Resources>
<Grid>
<StackPanel>
<!--按钮事件,通过点击按钮,更新资源的Color-->
<Button Content="Update" Margin="10" Click="Button_Update" />
<!--静态绑定-->
<Button Content="Button1" BorderBrush="{StaticResource SolidColor}" Margin="10"/>
<!--动态绑定-->
<Button Content="Button2" BorderBrush="{DynamicResource SolidColor}" Margin="10"/>
</StackPanel>
</Grid>
</Window>
业务代码
namespace WpfApp1
{
/// <summary>
/// MainWindow.xaml 的交互逻辑
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void Button_Update(object sender, RoutedEventArgs e)
{
//找到资源,设置新的值
this.Resources["SolidColor"] = new SolidColorBrush(Colors.Black);
}
}
}
运行结果
点击,Update 按钮 动态绑定的Button2边框变为黑色,Button1 未改变
需要控件,随着软件资源变化去改变的话,就使用DynamicResource 动态绑定
例如,软件随着Window 主题 改变颜色