WPF-事件触发器

触发器基本上使您能够更改属性值或根据属性值采取行动。因此,它允许您动态地更改控件的外观和/或行为,而无需创建新的控件。
当满足某些条件时,触发器用于更改任何给定属性的值。触发器通常在应用于特定控件的样式或文档根中定义。有三种类型的触发器
• 属性触发器
• 数据触发器
• 事件触发器

事件触发器
当特定事件被触发时,事件触发器执行一些操作。它通常用来完成一些动画控制,如双数字,彩色动画等。在下面的例子中,我们将创建一个简单的按钮。当点击事件被触发时,它将扩展按钮的宽度和高度。

<Window x:Class="trigger.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:trigger"
        mc:Ignorable="d"
        Title="MainWindow" Height="350" Width="525">
    <Grid>
        <Button Content = "Click Me" Width = "60" Height = "30">
            <Button.Triggers>
                <EventTrigger RoutedEvent = "Button.Click">
                    <EventTrigger.Actions>
                        <BeginStoryboard>
                            <Storyboard>
                                <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty = 
                           "Width" Duration = "0:0:4">
                                    <LinearDoubleKeyFrame Value = "60" KeyTime = "0:0:0"/>
                                    <LinearDoubleKeyFrame Value = "120" KeyTime = "0:0:1"/>
                                    <LinearDoubleKeyFrame Value = "200" KeyTime = "0:0:2"/>
                                    <LinearDoubleKeyFrame Value = "300" KeyTime = "0:0:3"/>
                                </DoubleAnimationUsingKeyFrames>
                                <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty = "Height" 
                           Duration = "0:0:4">
                                    <LinearDoubleKeyFrame Value = "30" KeyTime = "0:0:0"/>
                                    <LinearDoubleKeyFrame Value = "40" KeyTime = "0:0:1"/>
                                    <LinearDoubleKeyFrame Value = "80" KeyTime = "0:0:2"/>
                                    <LinearDoubleKeyFrame Value = "150" KeyTime = "0:0:3"/>
                                </DoubleAnimationUsingKeyFrames>
                            </Storyboard>
                        </BeginStoryboard>
                    </EventTrigger.Actions>
                </EventTrigger>
            </Button.Triggers>
        </Button>
    </Grid>
</Window>

执行上述代码时,它将产生以下窗口:
在这里插入图片描述
点击按钮后,您会发现它将开始在两个维度上扩展。
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值