WPF可以使用一种叫做触发器的工具,来帮助我们完成图形显示功能。其中,WPF属性触发器是WPF中最常用的触发器类型,因为我们前边说过依赖属性具有垂直变更通知的功能,所以在使用属性触发器时会很方便,而且因为WPF中每个控件超过2/3的属性都是依赖属性,所以它用到的场合更多。#t#
WPF属性触发器是在当某个依赖属性的值发生变化时触发执行一个Setter的集合,当属性失去这个值时,这些被处罚执行的Setter集合会自动被撤销。
例如,下边的例子设置了当鼠标放置于按钮之上悬停时,按钮的外表会发生变化。注意,WPF属性触发器是用Trigger标识的。
- < Style x:Key="buttonMouseOver"
TargetType="{x:Type Button}">- < Style.Triggers>
- < Trigger Property="IsMouseOver"
Value="True">- < Setter Property="RenderTransform">
- < Setter.Value>
- < RotateTransform Angle="10">
< /RotateTransform>- < /Setter.Value>
- < /Setter>
- < Setter Property="RenderTrans
formOrigin" Value="0.5,0.5">
< /Setter>- < Setter Property="Background"
Value="#FF0CC030" />- < /Trigger>
- < /Style.Triggers>
- < /Style>
WPF属性触发器还经常被用在做数据验证时用来显示验证错误信息。在WPF学习之绑定里的Validation部分我们附有用属性触发器来判断是否有验证错误并显示相应验证错误信息的示例。
- < TextBox Style="{StaticResource
validateTextBoxStyle}">- < TextBox.Text>
- < Binding UpdateSourceTrigger=
"PropertyChanged" Path="Department">- < Binding.ValidationRules>
- < local:JpgValidationRule/>
- < /Binding.ValidationRules>
- < /Binding>
- < /TextBox.Text>
- < /TextBox>
- …..
- < Style x:Key="validateTextBoxStyle"
TargetType="{x:Type TextBox}">- < Setter Property="Width"
Value="300" />- < Style.Triggers>
- < Trigger Property="Validation.
HasError" Value="True">- < Setter Property="Background"
Value="Red"/>- < Setter Property="ToolTip"
Value="{Binding RelativeSource=
{RelativeSource Self}, Path=
(Validation.Errors)[0].
ErrorContent}"/>- < /Trigger>
- < /Style.Triggers>
- < /Style>
WPF属性触发器的介绍就到这里,希望对大家有些帮助。