目录
1.为什么使用样式
2.怎么使用简单样式
1.简单定义使用
2.稍复杂使用
3.关联事件
4.多层样式
5.根据类型自动应用样式
3.测试代码和效果图
1.测试代码
2.效果图
为什么使用样式
如测试图中的First,使用Window.Resourse下的资源来定义自己的字体大小、字体
这样做的话,写了4行代码(行的计数不是那么清晰):
Window.Resourse下写了两行
First下写了两行
如果我还有一个按钮,也想要一样的字体和字体大小,又写2行,共6行
想实现两个按钮的字体大小和字体一样,我分别在两个按钮下定义即可
用资源代码不是臃肿吗?
而且资源中字体大小和字体都是Font的属性,没有关联在一起?
怎么使用简单样式
1.简单定义使用
好处
Second用的就是其中最简单的样式ButtonFontStyle
ButtonFontStyle下面定义字体和字体大小写了3行代码
不管多个按钮想要使用这种样式,即这种样式下的字体和字体大小,每次只需要多一行代码
如何定义
<Style x:Key="ButtonFontStyle">
<Setter Property="Control.FontFamily" Value="Times New Roman"/>
<Setter Property="Control.FontSize" Value="20"/>
</Style>
Style设置一个key建,我们使用的名字
里面可以有多个设置器Setter
Setter的Property设置属性,某个元素的什么属性
Setter的Value设置值
如何使用
元素中Style=”{StaticResource ButtonFontStyle}”
2.稍复杂使用
有时候Style下面的属性设置,Value不是简单的String,可以嵌套,如效果图中的Sixth中有皮卡丘,用了一个ImageBrush,这是一个元素,值不是一个简单的字符串,使用可以嵌套元素,参考代码中的ButtonFontStyle5
3.关联事件
样式中也可以添加事件,设置器Setter换成EventSetter,效果图中的TextBlock用了MouseEvent事件使背景变紫,参考代码中的ButtonFontStyle3
4.多层样式
我有两个样式,A样式设置了字体大小,B样式设置了字体颜色,但是每个元素只能使用一个样式,但我们想要这个元素有A的字体大小B的字体颜色,使用A或者B,设置BasedOn为B或者A,参考代码中的ButtonFontStyle
5.根据类型
写了一个样式,想让该窗口中所有按钮都使用,样式不设置key,改为TargetType=”Button”,那这个窗口中没有设置样式的按钮都会设置为该样式,如果想要其中一个按钮不用,在该按钮下Style=”{x:Null}”
6.注意
在测试代码中的ButtonFontStyle2下写了3个设置字体