当前位置: 首页 > news >正文

WPF—Triggers触发器

WPF—Triggers触发器

介绍 :

WPF提供了一个丰富和灵活的图形渲染框架,触发器(Triggers)是其中一个重要的功能。触发器能够用来控制或改变UI元素的属性、样式、甚至行为.        

触发器类型

Property Triggers

当某个依赖属性达到某个值时触发(列如: 点击或鼠标移入)

Data Triggers

当绑定到的数据满足某个条件时触发

Event Triggers

当某个事件被触发时进行相应的行为(用于动画操作)

MultiTriggers 和 MultiDataTriggers

当多个条件被满足时触发

Property Triggers实例 当某个依赖属性达到某个值时触发(列如: 点击或鼠标移入) 

介绍:

当UI元素的某个属性达到特定值时,Property Triggers会被触发。

// 当组件被点击时触发(TargetType: 设置相对应的标签类型)
<Button Content="点击我"><Button.Style><Style TargetType="{x:Type Button}"><Style.Triggers><Trigger Property="Click" Value="True"><Setter Property="Background" Value="Yellow"/></Trigger></Style.Triggers></Style></Button.Style>
</Button>

Data Triggers实例  当绑定到的数据满足某个条件时触发

介绍:

DataTrigger是一种在数据绑定的值满足特定条件时改变控件样式的触发器。DataTrigger的工作方式类似于常规的Trigger,但它们关联的是绑定的数据属性而不是依赖属性。

// 当TextBox标签的text属性绑定的数据为111时触发,将背景颜色改为pink
(TargetType: 设置相对应的标签类型)<Window.Resources><Style TargetType="TextBox"><Style.Triggers><DataTrigger Binding="{Binding Text, RelativeSource={RelativeSource Self}}" Value="111"><Setter Property="Background" Value="Pink"/></DataTrigger></Style.Triggers></Style></Window.Resources><Grid><TextBox Width="200" Height="30" Margin="20"/></Grid>

Event Triggers实例: 当某个事件被触发时进行相应的行为(用于动画操作)

介绍:

用于触发一系列的动画或者行为。

// 当鼠标点击该标签时 触发动画效果
<Button Content="点击我"><Button.Triggers><EventTrigger RoutedEvent="Button.Click"><BeginStoryboard><Storyboard><!-- 动画效果 --></Storyboard></BeginStoryboard></EventTrigger></Button.Triggers>
</Button>

MultiTriggers 和 MultiDataTriggers实例  当多个条件被满足时触发

介绍:

当需要多个条件同时满足时使用。

// 当鼠标悬停在按钮上并且按钮处于可用状态时,按钮的背景变为粉红色。
(x:Key:用于设置触发器的键   |   TargetType : 用于设置对应的标签类型)
<Style x:Key="multiTriggerExample" TargetType="{x:Type Button}"><Style.Triggers><MultiTrigger><MultiTrigger.Conditions><Condition Property="IsMouseOver" Value="True"/><Condition Property="IsEnabled" Value="True"/></MultiTrigger.Conditions><Setter Property="Background" Value="Pink"/></MultiTrigger></Style.Triggers>
</Style>// 在button标签中调用该触发器的键
<Button Content="测试按钮" Style="{StaticResource multiTriggerExample}">
</Button>

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Linux驱动开发基础(SR501人体红外模块)
  • HashMap 的实现原理
  • CSS3动画——飞行的小精灵
  • webpark 如何将本地访问地址http://localshot:3000修改为自己需要的访问地址https://www.example.com:3000
  • 【ES6】使用Proxy实现单例模式
  • 论文阅读:scMGCA----模型方法
  • Go语言Time包的使用
  • C. Propagating tree
  • HTML5 浏览器支持
  • XML CSS:结构和样式的完美结合
  • 秋招突击——8/16——字节广告业务——面经整理——二面挂
  • 【docker compose 部署和 go 热部署工具fresh】
  • git rebase和git merge的区别
  • EazyDraw for Mac 矢量图绘制设计软件
  • MySQL 学习笔记之事务操作
  • 【Amaple教程】5. 插件
  • 【干货分享】SpringCloud微服务架构分布式组件如何共享session对象
  • 【个人向】《HTTP图解》阅后小结
  • 77. Combinations
  • Java编程基础24——递归练习
  • JDK 6和JDK 7中的substring()方法
  • MobX
  • python学习笔记 - ThreadLocal
  • session共享问题解决方案
  • Spark学习笔记之相关记录
  • spring security oauth2 password授权模式
  • Vue.js-Day01
  • Vue.js源码(2):初探List Rendering
  • vue从入门到进阶:计算属性computed与侦听器watch(三)
  • vue数据传递--我有特殊的实现技巧
  • webgl (原生)基础入门指南【一】
  • 从 Android Sample ApiDemos 中学习 android.animation API 的用法
  • 嵌入式文件系统
  • 区块链将重新定义世界
  • 我这样减少了26.5M Java内存!
  • 用mpvue开发微信小程序
  • Linux权限管理(week1_day5)--技术流ken
  • 好程序员web前端教程分享CSS不同元素margin的计算 ...
  • 如何用纯 CSS 创作一个货车 loader
  • ​DB-Engines 11月数据库排名:PostgreSQL坐稳同期涨幅榜冠军宝座
  • ​io --- 处理流的核心工具​
  • #免费 苹果M系芯片Macbook电脑MacOS使用Bash脚本写入(读写)NTFS硬盘教程
  • $.ajax,axios,fetch三种ajax请求的区别
  • (31)对象的克隆
  • (32位汇编 五)mov/add/sub/and/or/xor/not
  • (delphi11最新学习资料) Object Pascal 学习笔记---第8章第2节(共同的基类)
  • (NO.00004)iOS实现打砖块游戏(十二):伸缩自如,我是如意金箍棒(上)!
  • (二)Kafka离线安装 - Zookeeper下载及安装
  • (分类)KNN算法- 参数调优
  • (附源码)springboot电竞专题网站 毕业设计 641314
  • (附源码)ssm考生评分系统 毕业设计 071114
  • (力扣记录)235. 二叉搜索树的最近公共祖先
  • (企业 / 公司项目)前端使用pingyin-pro将汉字转成拼音
  • (三分钟了解debug)SLAM研究方向-Debug总结
  • (十六)视图变换 正交投影 透视投影