样式和触发器
文章目录
前言
- 样式(Style)是组织和重用格式化选项的重要工具。样式封装了一系列属性设置细节;
- 触发器,顾名思义, 触发器可以理解为, 当达到了触发的条件, 那么就执行预期内的响应, 可以是样式、数据变化、动画等。触发器,从某种意义上来说它也是一种Style,因为它包含有一个Setter集合,并根据一个或多个条件执行Setter中的属性改变。
一、样式(Style)
WPF中的各类控件元素, 都可以自由的设置其样式,而样式则是组织和重用格式化选项的重要工具。不是使用重复的标记填充XAML, 通过Styles创建一系列封装所有这些细节的样式。然后通过Style属性应用封装好的样式。这点类似于CSS样式。然而, WPF样式的功能更加强大, 如控件的行为。WPF的样式还支持触发器。
1.常见的样式类型
- 字体(FontFamily)
- 字体大小(FontSize)
- 背景颜色(Background)
- 字体颜色(Foreground)
- 边距(Margin)
- 水平位置(HorizontalAlignment)
- 垂直位置(VerticalAlignment) 等等
2. 示例
<Grid>
<StackPanel HorizontalAlignment="Center" VerticalAlignment="Center" >
<TextBlock Text="Text1" FontFamily="宋体" FontSize="18" Foreground="Red" FontWeight="Bold"/>
<TextBlock Text="Text2" FontFamily="宋体" FontSize="18" Foreground="Red" FontWeight="Bold"/>
<TextBlock Text="Text3" FontFamily="宋体" FontSize="18" Foreground="Red" FontWeight="Bold"/>
<TextBlock Text="Text4" FontFamily="宋体" FontSize="18" Foreground="Red" FontWeight="Bold"/>
</StackPanel>
</Grid>
运行结果:
上面有讲到, 样式是组织和重用的工具。 而上面的代码, 由于每个元素都是相同的, 但是每个元素XAML都重复定义。 下面将介绍通过样式如何优化上面的代码。
- 第一步: 在Resources目录下定义一个TextBlockStyle的样式, 完整代码如下:
<Window.Resources>
<Style x:Key="TextBlockStyle" TargetType="x:Type TextBlock">
<Setter Property="Fontsize" Value=" 18"/>
<Setter Property="FontFamily" Value=" 宋体"/>
<Setter Property="Foreground" Value=" Red"/&g