WPF中有种叫做触发器的东西(记住不是数据库的trigger哦)。它的主要作用是根据trigger的不同条件来自动更改外观属性,或者执行动画等操作。

WPFtrigger的主要类型有:Trigger、MultiTrigger、DataTrigger、MultiDataTrigger、EventTrigger几种。从字面意思上我们想大家已经知道个大概,接下来我将还会用实例代码逐一进行介绍。trigger主要运用的场景在Style、ControlTemplate、DataTemplate三个地方。在这些地方可以使用trigger,具体视情况而定。

1.在Style中使用各种trigger

在style中使用的trigger主要是属性的触发器,当属性的值发生改变是将会引发触发器。

我们手写在Window中定义一个动画一个事件触发器

   <Window.Resources>
<Storyboard x:Key="bonn1">
<DoubleAnimation Storyboard.TargetName="butt" Storyboard.TargetProperty="Width" To="100" Duration="0:0:0.5"></DoubleAnimation>
</Storyboard>
<Storyboard x:Key="bonn2">
<DoubleAnimation Storyboard.TargetName="butt" Storyboard.TargetProperty="Width" Duration="0:0:0.5"></DoubleAnimation>
</Storyboard>
</Window.Resources>
<Window.Triggers>
<EventTrigger RoutedEvent="Button.Click" SourceName="butt">
<BeginStoryboard Storyboard="{DynamicResource bonn1}"></BeginStoryboard>
</EventTrigger>
<EventTrigger RoutedEvent="Button.MouseLeave" SourceName="butt">
<BeginStoryboard Storyboard="{DynamicResource bonn2}"></BeginStoryboard>
</EventTrigger>
</Window.Triggers>

绑定的按钮定义如下:

  <Button Name="butt" Style="{DynamicResource BtnInfoStyle}" Width="70" Content="信息">
<!--<i:Interaction.Behaviors>
<local:LightedEffectBehavior/>
</i:Interaction.Behaviors>
<Button.Triggers>
<EventTrigger RoutedEvent="Button.Click">
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Storyboard.TargetProperty="Width" To="100" Duration="0:0:0.5"></DoubleAnimation>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Button.Triggers>-->
</Button>

最新文章

  1. Mysql 关键字及保留字
  2. 一起写一个JSON解析器
  3. Oracle参数化查询
  4. java web 学习 --第五天(Java三级考试)
  5. (04)odoo视图操作
  6. MySQL slave状态之Seconds_Behind_Master
  7. 舶来品P2P理财 能否成为“好声音”式好生意? 转
  8. Linux内核分析(二)----内核模块简介|简单内核模块实现
  9. SVN:One or more files are in a conflicted state
  10. java操作mongodb——连接数据库
  11. Coloring Trees
  12. .Net4.0 任务(Task)
  13. 神经网络的另一种非线性阶跃函数---ReLU函数
  14. 监听器的配置,绑定HttpSessionListener监听器的使用
  15. P1939【模板】矩阵加速(数列)
  16. 关于方法中的self参数和全局变
  17. PAT 1012 数字分类 (20)(代码+测试点)
  18. Hibernate高效查询,只查询部分/指定字段
  19. 使用Flask+MongoDB实现基于REST的接口简单操作
  20. AliSQL 5.6.32 vs MySQL 5.7.15抢鲜测试

热门文章

  1. 基于Hexo搭建静态博客
  2. 【转载】七个人生工具,终生受益 | SWOT、PDCA、6W2H、SMART、WBS、时间管理、二八原则
  3. [机器学习] Yellowbrick使用笔记3-特征分析可视化
  4. 旧酒换新瓶,新版M1/M2芯片Macos(Ventura)安装古早版本Python2.7(Python2.x)
  5. 传播问卷调查数据不够?自己生成假数据!Python编程一对一教学
  6. 【Redis实战专题】「性能监控系列」全方位探索Redis的性能监控以及优化指南
  7. 区块链特辑——solidity语言基础(六)
  8. 序列化框架-Kyro简述
  9. SSM使用PageHelper
  10. My First Blog Ever——记我在交大ACM班的第一个学期