样式
本地样式
样式书写
写在窗口资源
` <Window.Resources>
</Window.Resources> `
的样式为本地样式。
- 第一个Style为本地全局样式为此窗口全部类型为button的样式(本地全局样式无需设置KEY值)。
- 第二个继承了第一个style,KEY为Btn2并修改了BorderThickness边框属性。
- 第三个继承了第二个style,KEY为Btn3并修改了Background背景颜色属性。
样式绑定
- 第一个Button使用的是本地全局样式无需增加代码
- 第二个Button使用是第二个Style样式需要在Button属性里进行样式绑定
Style="{StaticResource btn2}" - 同理
本地样式无法跨窗口
如图不同窗体无法共用,因为本地样式属于本地窗体属性。
需要跨窗体使用必须变成全局(整个项目)样式
全局样式
如图写在App.xaml的
<Application.Resources>
<!--Your Styles-->
</Application.Resources>
中。
资源字典
当需要写多种控件样式时全写在App.xaml里会不好管理维护及查看。这时候可以使用资源字典。
如图,创建资源字典Dictionary并将样式写在字典里。App.xaml文件进行引用。
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Dictionary/Dictionary1.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
本人资源字典放在与App.xaml同目录的Dictionary文件夹里。根据自己资源字典存放路径书写。
此外资源字典还可以相互引用,在资源字典里引用如下
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="..."/>
</ResourceDictionary.MergedDictionaries>
也可以写在Window或者UserControl当局部资源字典使用(尤其是写类库时没有App.xaml文件的时候)
注意 :当不同资源字典存在相同的KEY值的Style时,会引用第一个字典里的Style如
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Dictionary1.xaml"/>
<ResourceDictionary Source="Dictionary2.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
会使用Dictionary1中相同的KEY值的Style。