Setter类的作用是给System.Windows.Style指定的TargetType类型或者自身的TargetName指定的对象设置属性值。
Setter类的属性
1. IsSealed:表明该Setter对象的状态是否可以更改,true表示不可更改,false表示可以更改;
2. Property和Value:这两个属性是成对出现的。Property用于接收Setter所服务的对象(可以通过TargetName属性指明)的任意属性,而Value给这些属性赋值;
3. TargetName:指明当前Setter对象所服务的对象名。如果没有指明TargetName,则默认为Style指定的TargetType对象。Property的值只能是Setter对象所服务的对象属性。
举个例子:
<Style x:Key="ButtonStyleActive" TargetType="Button">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Grid>
<Image Name="BtnInfo" Source="Resources\active\btn_22.png" />
<ContentPresenter Content="{TemplateBinding Content}" HorizontalAlignment="Center" VerticalAlignment="Center"></ContentPresenter>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Source" Value="Resources\active\btn_22_f.png" TargetName="BtnInfo" />
</Trigger>
<Trigger Property="IsPressed" Value="True">
<Setter Property="Source" Value="Resources\active\btn_22.png" TargetName="BtnInfo" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
Setter通常在定义UI样式的时候,在Style元素对象的作用域中使用