為你解開WPF屬性觸發(fā)器之謎
WPF可以使用一種叫做觸發(fā)器的工具,來幫助我們完成圖形顯示功能。其中,WPF屬性觸發(fā)器是WPF中最常用的觸發(fā)器類型,因為我們前邊說過依賴屬性具有垂直變更通知的功能,所以在使用屬性觸發(fā)器時會很方便,而且因為WPF中每個控件超過2/3的屬性都是依賴屬性,所以它用到的場合更多。#t#
WPF屬性觸發(fā)器是在當某個依賴屬性的值發(fā)生變化時觸發(fā)執(zhí)行一個Setter的集合,當屬性失去這個值時,這些被處罰執(zhí)行的Setter集合會自動被撤銷。
例如,下邊的例子設(shè)置了當鼠標放置于按鈕之上懸停時,按鈕的外表會發(fā)生變化。注意,WPF屬性觸發(fā)器是用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屬性觸發(fā)器還經(jīng)常被用在做數(shù)據(jù)驗證時用來顯示驗證錯誤信息。在WPF學(xué)習(xí)之綁定里的Validation部分我們附有用屬性觸發(fā)器來判斷是否有驗證錯誤并顯示相應(yīng)驗證錯誤信息的示例。
- < 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屬性觸發(fā)器的介紹就到這里,希望對大家有些幫助。