WPF:静态、动态资源以及资源词典
静态资源与动态资源
我们常常会使用样式或者控件模板放在Window.Resources中,比如这样:
静态资源与动态资源使用如下:
<Window.Resources>
<SolidColorBrush x:Key="SolidColor" Color="#FF0000" />
</Window.Resources>
<Grid>
<StackPanel>
<Button Height="40" Margin="10" Content="Button1" Click="Button_Click" />
<Button Height="40"
Margin="10"
Content="Button2"
BorderBrush="{StaticResource SolidColor}"
BorderThickness="4" />
<Button Height="40"
Margin="10"
Content="Button3"
BorderBrush="{DynamicResource SolidColor}"
BorderThickness="4" />
</StackPanel>
</Grid>
区别:动态资源是在界面中根据指令可以变化的,静态则不会
![image-20240820214834842](http://dev-img.mos.moduyun.com/20240821/5276a0f7-617c-4c85-955d-9a509311efd3.png)
资源词典
当样式多了,这个时候我们需要单独创建一个资源去管理他,这个时候我们就有了资源词典:
将Window.Resources中的代码移植过来:
![image-20240820215241649](http://dev-img.mos.moduyun.com/20240821/443f515f-7703-4368-92d7-360e3121d472.png)
这个时候还得在加载时将这个资源词典加载过来,在app.xaml中加载
![image-20240820215351454](http://dev-img.mos.moduyun.com/20240821/af8f9df3-144b-4f0c-95ac-a6c3376b86df.png)
在main中也可以查找对应的资源,如下:
![image-20240820215507890](http://dev-img.mos.moduyun.com/20240821/fe3c304f-284e-4133-b65e-7b145f9e774f.png)
结果依然可以得到:
![image-20240820215717618](http://dev-img.mos.moduyun.com/20240821/b0d96a5f-a9f1-4cdc-99d5-8323b30d2817.png)