0504样式触发器Trigger
1、Trigger 根据什么条件触发什么动作
<Style.Triggers> <Trigger Property="Width" Value="100"> <Setter Property="Background" Value="Gray"/> </Trigger> <Trigger Property="Width" Value="200"> <Setter Property="Background" Value="Orange"/> </Trigger> </Style.Triggers>
Trigger设置条件,来自当前Style内部的属性值的变化
Setter设置动作
可以不同的条件执行不同的动作
2、常见checkbox,选中事件
<CheckBox Content="选中事件" Style="{StaticResource cbx}" IsChecked="False" />
CheckBox 不同与textblack 需要指定key
<Style TargetType="CheckBox" x:Key="cbx"> <Setter Property="FontSize" Value="30"/> <Style.Triggers> <Trigger Property="IsChecked" Value="True"> <Setter Property="Foreground" Value="Red"/> </Trigger> </Style.Triggers> </Style>
选中后前景色变化,取消选择恢复

<CheckBox Content="选中事件" Style="{StaticResource cbx}" Foreground="Green" />
如果内联设置了Foreground属性,则优先级最高,不管触发器怎么写都不会生效
要想生效,必须在Style内部设置样式,
<Setter Property="Foreground" Value="Green"/>
触发才会生效
Content属性也是一样,要在Style内部设置样式定义,才会改变
3、Button
鼠标移动
<Trigger Property="IsMouseOver" Value="True"> <Setter Property="Foreground" Value="Green"/> </Trigger>
鼠标点击
<Trigger Property="IsPressed" Value="True"> <Setter Property="Foreground" Value="Red"/> </Trigger>
移动包含点击,点击顺序要在移动后面才会生效
联合触发器
<MultiTrigger > <MultiTrigger.Conditions> <Condition Property="Width" Value="100"/> <Condition Property="IsPressed" Value="True"/> </MultiTrigger.Conditions> <MultiTrigger.Setters> <Setter Property="Background" Value="Red"/> </MultiTrigger.Setters> </MultiTrigger>
更改button背景色是系统模板的优先级高,所以要改模板,样式优先级不如模板所以不生效
浙公网安备 33010602011771号