普通触发器Trigger

设置依赖属性,来监测属性变化

  1. <Window.Resources>
  2. <Style x:Key="defaultStyle" TargetType="Button">
  3. <Style.Triggers>
  4. <Trigger Property="IsMouseOver" Value="True">
  5. <Setter Property="Background" Value="Green"/>
  6. <Setter Property="FontSize" Value="40"/>
  7. </Trigger>
  8. <Trigger Property="IsMouseOver" Value="False">
  9. <Setter Property="FontSize" Value="20"/>
  10. <Setter Property="Background" Value="Red"/>
  11. </Trigger>
  12. </Style.Triggers>
  13. </Style>
  14. </Window.Resources>
  15. <Grid ShowGridLines="True">
  16. <StackPanel>
  17. <Button Style="{StaticResource defaultStyle}" Content="Hello"/>
  18. <Button Style="{StaticResource defaultStyle}" Content="Hello"/>
  19. </StackPanel>
  20. </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>