WPF - Triggers

使用control自由的property作为trigger
ContractedBlock.gif ExpandedBlockStart.gif View Code
 
    
< ToggleButton Width ="30" Height ="30" >
< ToggleButton.Style >
< Style TargetType ="ToggleButton" >
< Style.Triggers >
< Trigger Property ="IsChecked" Value ="true" >
< Setter Property ="Content" >
< Setter.Value >
< Border BorderThickness ="1" BorderBrush ="Blue" >
< Image Source ="LimitChecked.ico" />
</ Border >
</ Setter.Value >
</ Setter >
</ Trigger >
< Trigger Property ="IsChecked" Value ="false" >
< Setter Property ="Content" >
< Setter.Value >
< Image Source ="LimitUnChecked.ico" />
</ Setter.Value >
</ Setter >
</ Trigger >
</ Style.Triggers >
</ Style >
</ ToggleButton.Style >
</ ToggleButton >
-
使用其他control的property作为trigger
ContractedBlock.gif ExpandedBlockStart.gif View Code
 
    
< StackPanel HorizontalAlignment ="Center" VerticalAlignment ="Center" >

< CheckBox x:Name ="theCB" Content ="Enable the TextBox" />

< TextBox > <!-- can NOT set 'IsEnabled' property in this line anymore, that will overwrite the style -->
< TextBox.Style >
< Style TargetType ="TextBox" >
< Style.Triggers >
< DataTrigger Binding =" {Binding ElementName=theCB, Path=IsChecked} " Value ="True" >
< Setter Property ="IsEnabled" Value ="True" />
</ DataTrigger >
< DataTrigger Binding =" {Binding ElementName=theCB, Path=IsChecked} " Value ="False" >
< Setter Property ="IsEnabled" Value ="False" />
</ DataTrigger >
</ Style.Triggers >
</ Style >
</ TextBox.Style >
</ TextBox >

</ StackPanel >
-
使用ViewModel中的property作为trigger
ContractedBlock.gif ExpandedBlockStart.gif View Code
 
    
< StackPanel HorizontalAlignment ="Center" VerticalAlignment ="Center" >

< CheckBox IsChecked =" {Binding IsRed} " Content ="IsRed" />

< TextBlock >
< TextBlock.Style >
< Style > <!-- is not specify target type -->
< Style.Triggers >
< DataTrigger Binding =" {Binding Path=IsRed} " Value ="True" >
< Setter Property ="TextBlock.Background" Value ="Red" /> <!-- then, need prefixed with 'TextBlocl.' which is the target type -->
</ DataTrigger >
< DataTrigger Binding =" {Binding Path=IsRed} " Value ="False" >
< Setter Property ="TextBlock.Background" Value ="Black" />
</ DataTrigger >
</ Style.Triggers >
</ Style >
</ TextBlock.Style >
</ TextBlock >
</ StackPanel >
-
tbd...

转载于:https://www.cnblogs.com/yapzhang/archive/2010/09/01/1814519.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值