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















 
 
 
 
 
 
 