普通触发器Trigger
设置依赖属性,来监测属性变化
<Window.Resources>
<Style x:Key="defaultStyle" TargetType="Button">
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="Green"/>
<Setter Property="FontSize" Value="40"/>
</Trigger>
<Trigger Property="IsMouseOver" Value="False">
<Setter Property="FontSize" Value="20"/>
<Setter Property="Background" Value="Red"/>
</Trigger>
</Style.Triggers>
</Style>
</Window.Resources>
<Grid ShowGridLines="True">
<StackPanel>
<Button Style="{StaticResource defaultStyle}" Content="Hello"/>
<Button Style="{StaticResource defaultStyle}" Content="Hello"/>
</StackPanel>
</Grid>
联合多个条件触发器MultiTrigger
<Window.Resources>
<Style x:Key="defaultStyle" TargetType="Button">
<Style.Triggers>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="IsMouseOver" Value="True"/>
<Condition Property="IsFocused" Value="True"/>
</MultiTrigger.Conditions>
<MultiTrigger.Setters>
<Setter Property="Foreground" Value="Green"/>
</MultiTrigger.Setters>
</MultiTrigger>
</Style.Triggers>
</Style>
</Window.Resources>
<Grid ShowGridLines="True">
<StackPanel>
<Button Style="{StaticResource defaultStyle}" Content="Hello"/>
<Button Style="{StaticResource defaultStyle}" Content="Hello"/>
</StackPanel>
</Grid>
事件触发器(用于动画效果)
<Window.Resources>
<Style x:Key="defaultStyle" TargetType="Button">
<Style.Triggers>
<EventTrigger>
<EventTrigger.Actions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Duration="0:0:0.2"
Storyboard.TargetProperty="FontSize"
To="30">
</DoubleAnimation>
</Storyboard>
</BeginStoryboard>
</EventTrigger.Actions>
</EventTrigger>
</Style.Triggers>
</Style>
</Window.Resources>