触发器可以理解为,当达到了触发的条件,那么就执行预期内的响应,可以是样式、数据变化、动画等。
触发器通过Style.Triggers集合连接到样式中,每个样式都可以有任意多个触发器,并且每个触发器都是System.Windows.TriggerBase的派生类实例,以下是触发器的类型:
Trigger :监测依赖属性的变化,触发器生效
例如(鼠标移入改变颜色和大小):
<Style.Triggers>
//移入改变样式
<Trigger Property="IsMouseOver" Value="True" >
<Setter Property="Foreground" Value="Blue" />
<Setter Property="FontSize" Value="20" />
</Trigger>
//移出恢复样式
<Trigger Property="IsMouseOver" Value="False" >
<Setter Property="Foreground" Value="red" />
<Setter Property="FontSize" Value="15" />
</Trigger>
</Style.Triggers>
MultiTrigger :通过多个条件的设置,达到满足条件,触发器生效
例如(鼠标移入并且获得焦点时改变颜色):
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="IsMouseOver" Value="true" />
<Condition Property="IsFocused" Value="true" />
</MultiTrigger.Conditions>
<MultiTrigger.Setters>
<Setter Property="Background" Value="Pink"
</MultiTrigger.Setters>
</MultiTrigger>
DataTrigger :通过数据的变化,触发器生效
例如(数据触发器绑定到输入框的内容上,监测输入框的文本内容,做出响应):
<DataTrigger Binding="{Binding RelativeSource={RelativeSource Mode=Self},Path=Text}" Value="123">
<Setter Property="BackGround" Value="Green" />
</DataTrigger>
MultiDataTrigger :多个数据条件的触发器
EventTrigger :事件触发器,触发了某类事件时,触发器生效
ps:自用勿喷