Style中的Setter
程序员文章站
2022-07-13 23:02:20
...
Setter设置器,属性值的的设置器。在Style中我们给属性赋值的时候一般都采用“属性名=属性值”的形式。Setter类的Property属性用来指明你想为目标的哪个属性赋值;Setter类的Value属性则是提供属性值。
下面的例子中在Window的资源词典中放置一个针对TextBlock的Style,Style中使用若干Setter来设定TextBlock的一些属性,这样的程序中的TextBlock就会具有统一的风格,除非使用{x:Null}显示地清空Style。
XAML代码如下:
<Window x:Class="WpfApplication1.Window1"
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:WpfApplication1"
mc:Ignorable="d"
Title="Window1" Height="300" Width="300">
<Window.Resources>
<Style TargetType="TextBlock">
<Style.Setters>
<Setter Property="FontSize" Value="24"/>
<Setter Property="Background" Value="Red"/>
<Setter Property="FontStyle" Value="Italic"/>
</Style.Setters>
</Style>
</Window.Resources>
<StackPanel Margin="5">
<TextBlock Text="Hello"></TextBlock>
<TextBlock Text="This is"></TextBlock>
<TextBlock Text="2019" Style="{x:Null}"></TextBlock>
</StackPanel>
</Window>
因为Style的内容属性是Setters,所以我们可以直接在<Style>标签的内容区域写Setter。上面的代码可以简化如下
<Style TargetType="TextBlock">
<Setter Property="FontSize" Value="24"/>
<Setter Property="Background" Value="Red"/>
<Setter Property="FontStyle" Value="Italic"/>
</Style>
运行显示结果:
推荐阅读