Trigger

作者: Lulus | 来源:发表于2017-12-31 15:39 被阅读0次

Trigger分类

Trigger
MultiTrigger
DataTrigger
MultiDataTrigger
EventTrigger

EventTrigger

指定触发的事件,触发事件之后执行的内容,这里写了两个动画效果

<CheckBox Content="随着鼠标划入划出,长度改变" HorizontalAlignment="Left" Width="70">
    <CheckBox.Resources>
        <Style TargetType="{x:Type CheckBox}">
            <Setter Property="Foreground" Value="OrangeRed"></Setter>
            <Style.Triggers>
                <!--当鼠标划入,增加长度-->
                <EventTrigger RoutedEvent="MouseEnter">
                    <EventTrigger.Actions>
                        <BeginStoryboard>
                            <Storyboard>
                                <!--这里设置了一个动画,持续时间是0.2秒,改变属性为Width,目标数值是200-->
                                <DoubleAnimation Duration="0:0:0.2" 
                                                 Storyboard.TargetProperty="Width" 
                                                 To="200"></DoubleAnimation>
                            </Storyboard>
                        </BeginStoryboard>
                    </EventTrigger.Actions>
                </EventTrigger>
                <!--当鼠标划出,减小长度-->
                <EventTrigger RoutedEvent="MouseLeave">
                    <EventTrigger.Actions>
                        <BeginStoryboard>
                            <Storyboard>
                                <DoubleAnimation Duration="0:0:0.2" 
                                                 Storyboard.TargetProperty="Width" 
                                                 To="70"></DoubleAnimation>
                            </Storyboard>
                        </BeginStoryboard>
                    </EventTrigger.Actions>
                </EventTrigger>
            </Style.Triggers>
        </Style>
    </CheckBox.Resources>
</CheckBox>

Trigger

<Grid>
    <Grid.Resources>
        <Style x:Key="ButtonStyle" TargetType="Button">
            <Setter Property="Foreground" Value="DarkOrange"></Setter>
            <Style.Triggers>
                <Trigger Property="IsMouseOver" Value="True">
                    <Setter Property="Foreground" Value="DarkRed"></Setter>
                </Trigger>
            </Style.Triggers>
        </Style>
    </Grid.Resources>
    <Button Content="鼠标滑过时,修改字体颜色" Style="{StaticResource ButtonStyle}"></Button>
</Grid>

DataTrigger

根据值,设置对应的效果
这里设置的是行头和单元格的效果,也可以设置为其他属性

<Window.Resources>
    <!--单元格的样式-->
    <Style TargetType="DataGridCell" x:Key="ColorCell">
        <Style.Triggers>
            <DataTrigger Binding="{Binding Type}" Value="0">
                <Setter Property="Background" Value="Pink"></Setter>
            </DataTrigger>
            <DataTrigger Binding="{Binding Type}" Value="1">
                <Setter Property="Background" Value="Coral"></Setter>
            </DataTrigger>
            <DataTrigger Binding="{Binding Type}" Value="2">
                <Setter Property="Background" Value="Crimson"></Setter>
            </DataTrigger>
        </Style.Triggers>
    </Style>
</Window.Resources>
<Grid>
    <DataGrid ItemsSource="{Binding }" AutoGenerateColumns="False">
        <!--行头的样式-->
        <DataGrid.RowHeaderStyle>
            <Style TargetType="DataGridRowHeader">
                <Style.Triggers>
                    <DataTrigger Binding="{Binding Type}" Value="0">
                        <Setter Property="Background" Value="Pink"></Setter>
                    </DataTrigger>
                    <DataTrigger Binding="{Binding Type}" Value="1">
                        <Setter Property="Background" Value="Coral"></Setter>
                    </DataTrigger>
                    <DataTrigger Binding="{Binding Type}" Value="2">
                        <Setter Property="Background" Value="Crimson"></Setter>
                    </DataTrigger>
                </Style.Triggers>
            </Style>
        </DataGrid.RowHeaderStyle>
        <DataGrid.Columns>
            <DataGridTextColumn Header="Type值" Width="*" Binding="{Binding TypeValue}"/>
            <DataGridTextColumn Header="Type效果" Width="*" Binding="{Binding Type}" CellStyle="{StaticResource ColorCell}"/>
        </DataGrid.Columns>
    </DataGrid>
</Grid>

效果

1

示例代码

https://github.com/zLulus/NotePractice/tree/dev3/WPF/WpfDemo/Trigger

相关文章

  • zabbixApi4j-Trigger

    Trigger trigger.addependencies: 添加新的触发器依赖项trigger.create:...

  • Apex | before trigger 与 after tr

    Apex trigger有两种类型:before trigger和after trigger。在多数情况下,bef...

  • jQuery事件自动触发

    事件自动触发 trigger()和triggerHandler() trigger() triggerHandle...

  • COMP9311 Database Systems WEEK7

    1. Additional video 1.1 Aggregate 1.2 Trigger 2. Trigger ...

  • jQuery的trigger()和e.data

    1、trigger() trigger()是主动触发,意思就是说不需要做人为操作自己就会触发。 注意trigger...

  • jQuery源码解析之trigger()

    一、$().trigger()和$().triggerHandler() 的作用和区别 (1)trigger("f...

  • Trigger

    Trigger分类 TriggerMultiTriggerDataTriggerMultiDataTriggerE...

  • Trigger

    挫败感在这样一个多云的天气被点燃,引发了更多的混乱。 首先是一封经过仔细修改的个人陈述。 9月初完成了初稿之后,我...

  • 16 触发器

    需求: 分析: 查看已有trigger: show triggers; 删除已有trigger: drop tr...

  • 内心小孩究竟在想什么

    人类本质模型分析问题 Trigger-Behavior-Motivation-Reward-Trigger's s...

网友评论

      本文标题:Trigger

      本文链接:https://www.haomeiwen.com/subject/hmqagxtx.html