欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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>

运行显示结果:
Style中的Setter