前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >WPF中的触发器(Trigger)

WPF中的触发器(Trigger)

作者头像
宿春磊Charles
发布于 2022-01-04 05:16:11
发布于 2022-01-04 05:16:11
3.2K0
举报
文章被收录于专栏:DotNet 致知DotNet 致知

这节来讲一下WPF中的触发器——Trigger。触发器,是指在既定条件或者特殊场景下被触发,从而去执行一个操作。在WPF中,触发器可以分为以下几类:基本触发器(Trigger);事件触发器(EventTrigger);数据触发器(DataTrigger);多条件触发器(MultiTrigger,MultiDataTrigger)。下面我们来通过代码一一了解。

1基本触发器(Trigger)

请看如下代码:

我为Slider控件的样式设置了一个基本触发器,需要关注的是Trigger的Property和Value,Property设置要根据Slider控件的哪个属性触发,Value设置当属性为何值时触发,在Setter中也有Property和Value,此处则是设置触发时要执行的操作,上述触发器的作用时当Slider的Value为1时,设置其背景为纯绿色:运行效果如下:

设置了两个Slider作对比,当Slider值为1时,触发器被触发,背景色也进行了对应修改。

当我们想监视多个属性的值来控制触发器的执行,可以使用MultiTrigger,请看如下代码:

多属性触发器,需要将多个触发条件写在MultiTrigger.Conditions中,其它用法都是一致的,上述代码中,当Slider的Value为1并且样式为垂直的时候,触发器才会触发,运行结果如下:

2事件触发器(EventTrigger)

请先看如下代码:

事件触发器有些不同的是,它触发执行的是一段动画,并且是通过RoutedEvent来执行要监视的事件,上述代码中,当Button的MouseEnter事件被触发时,其前景色会逐渐变成紫色,请看运行结果:

关于WPF动画的相关知识,会在下节讲述,请关注后续文章。

3数据触发器(DataTrigger)

请看如下代码:

我们还是以修改Slider背景色为例子,数据触发器使用Binding来设置要监视的对象,其结果跟示例1一致,此处不再展示,除了绑定一个数据,也可以通过MultiDataTrigger来绑定多个数据,当多个数据同时满足条件时才触发:

多数据触发器,需要将多个触发条件写在MultiDataTrigger.Conditions中,其它用法都是一致的,上述代码中,当Slider的Value为1并且最大值为1的时候,触发器才会触发,运行结果如下:

本节到此结束...

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-12-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 DotNet 致知 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
WPF中触发器Trigger、MultiTrigger、DataTrigger、MultiDataTrigger
WPF中有种叫做触发器的东西(记住不是数据库的trigger哦)。它的主要作用是根据trigger的不同条件来自动更改外观属性,或者执行动画等操作。
zls365
2021/01/28
3.4K0
WPF桌面端开发4-触发器
主要实现了 按钮选中和非选中状态下图标,文字样式的改变,以及使用模板取消Button原有的鼠标悬浮样式
码客说
2020/05/09
4550
深入WPF--Style
  这是MSDN上对Style的描述,翻译的还算中规中矩。Style(样式),简单来说,就是一种对属性值的批处理,类似于Html的CSS,可以快速的设置一系列属性值到UI元素。
JusterZhu
2023/09/18
1.1K0
深入WPF--Style
[WPF]使用WindowChrome自定义Window Style
做了WPF开发多年,一直未曾自己实现一个自定义Window Style,无论是《WPF编程宝典》或是各种博客都建议使用WindowStyle="None" 和 AllowsTransparency="True",于是想当然以为这样就可以了。最近来了兴致想自己实现一个,才知道WindowStyle="None" 的方式根本不好用,原因有几点:
dino.c
2019/01/18
2.3K0
[WPF]使用WindowChrome自定义Window Style
WPF 应用完全模拟 UWP 的标题栏按钮
发布于 2018-08-04 09:35 更新于 2018-08-05 02:21
walterlv
2018/09/18
2.2K0
WPF 应用完全模拟 UWP 的标题栏按钮
WPF之TreeList的实现方法(一)
做项目的时候根据需求,WPF现有的控件不能完全满足我们的需求, 很多时候我们需要对现有的控件做一下加工。 最简单的我们可能会把Tree转换成List形式有的叫Grid形式就像下图一样 今天我先做一个完
lpxxn
2018/01/31
2.1K0
WPF之TreeList的实现方法(一)
WPF TreeGrid MVVM 模式下自定义表格带展开缩放效果,并且可以获取点击行的数据
MVVM其实就是:Model 、View、ViewModel三个的简称,就像MVC一样。 Model就是模型。View就是视图。ViewModel就是和view进行绑定的。
Shunnet
2022/05/31
6K0
WPF TreeGrid MVVM 模式下自定义表格带展开缩放效果,并且可以获取点击行的数据
ORACLE触发器(trigger)的使用
触发器是一种在事件发生时隐式地自动执行的PL/SQL块,不能接受参数,不能被显式调用
全栈程序员站长
2022/09/13
1.1K0
ORACLE触发器(trigger)的使用
[WPF自定义控件库]使用WindowChrome的问题
上一篇文章介绍了使用WindowChrome自定义Window,实际使用下来总有各种各样的问题,这些问题大部分都不影响使用,可能正是因为不影响使用所以一直没得到修复(也有可能别人根本不觉得这些是问题)。
dino.c
2019/06/16
1.4K0
WPF面试题大全,秒杀面试官必备
近期,小伙伴们反映,B/S端工作难找,无论是.NET还是其它语言。与此同时,桌面端WPF和WinForm应用的招聘需求增加,尤其是WPF。前段时间,联想还招聘WPF开发岗位。本文分享了一些WPF面试题,供大家参考。先列出试题,大家先试做一下,后面给出参考答案。
郑子铭
2023/12/13
1K0
WPF面试题大全,秒杀面试官必备
Oracle 触发器详解(trigger)「建议收藏」
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/157665.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/14
3.8K0
WPF控件模板
引言:在进行WPF项目开发过程中,由于项目的需要,经常要对某个控件进行特殊的设定,其中就牵涉到模板的相关方面的内容。本文也是在自己进行项目开发过程中遇到控件模板设定时集中搜集资料后整理出来的,以供在以后的项目开发过程中查阅。WPF有控件模板和数据模板,从字面上来看,控件模板主要是用来改变控件的外观,数据模板则定义控件中数据的表现方式。下面让逐一进行介绍。
zls365
2021/01/28
1.1K0
WPF --- 非Button自定义控件实现点击功能
今天在做一个设置文件夹路径的功能,就是一个文本框,加个按钮,点击按钮,弹出 FolderBrowserDialog 再选择文件夹路径,简单做法,可以直接 StackPanel 横向放置一个 TextBox 和一个 Image Button,然后点击按钮在 后台代码中给 ViewModel 的 FilePath赋值。但是这样属实不够优雅,UI 不够优雅,代码实现也可谓是强耦合,那接下来我分享一下我的实现方案。
Niuery Diary
2023/10/22
3650
WPF --- 非Button自定义控件实现点击功能
游标和触发器
本章将学习oracle游标和触发器。在实际开发过程中,有一些复杂的逻辑必须对表中每一条记录分别进行单独处理,此时必须使用游标。游标提供了一种用于实现更加复杂的业务逻辑的途径。游标是指向上下文的指针。Oracle触发器是一种特殊的过程,它也有声明段,可执行段和异常处理段。在表或视图上创建针对INSERT,UPDATE,DELETE操作的触发器,只要在表或视图上发生INSERT,UPDATE,DELETE操作时自动触发。
用户9184480
2024/12/17
820
使用触发器
本章介绍如何在Intersystems SQL中定义触发器。触发器是响应某些SQL事件执行的代码行。本章包括以下主题:
用户7741497
2022/06/07
1.7K0
WPF 桌面端开发 8-DependencyProperty
在Resources和Data binding中,XAML 提供了这样一种语法,来为属性赋值:
码客说
2020/05/09
7560
WPF入门到放弃(六)| 画面优化与发布(附源程序)
WPF也是我今年刚开始深入去了解,看了不少的学习视频和书籍,受剑神Python入门到放弃的启发,想把这段时间学习内容做个总结,一是因为我相信技术总是需要不断的总结与练习才能有所进步,二是希望帮助初学者对WPF有个初步的了解,大家一起探讨学习进步。
剑指工控
2021/11/08
1.3K0
WPF入门到放弃(六)| 画面优化与发布(附源程序)
Oracle触发器概念和模板
当定义的 '触发条件' 成立时,其语句就会 '自动执行'  ,触发条件可以是对表数据的新增修改或者删除等。触发器的作用保护数据的安全,监视对数据的各种操作,如  '日志记录': 对重要表的 '修改' 进行记录。
共饮一杯无
2022/11/24
3540
WPF 点击按钮时更改按钮样式界面效果的 XAML 实现方法
在 WPF 中按钮 Button 将会吃掉路由事件,此时的 EventTrigger 如果通过 RoutedEvent 是 MouseLeftButtonDown 那么将会拿不到路由事件,也就触发不了,因此样式将不会变更。简单的解决方法就是通过 VisualStateManager 配合 VisualState 来实现
林德熙
2020/08/31
4.3K0
MySQL触发器Trigger加载以及目前局限
说明:MySQL在新增和删除触发器的操作时都会关闭当前已经打开的table句柄,在下次打开table时会重新load相应的trigger。
GreatSQL社区
2023/08/11
1560
MySQL触发器Trigger加载以及目前局限
相关推荐
WPF中触发器Trigger、MultiTrigger、DataTrigger、MultiDataTrigger
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文