0
点赞
收藏
分享

微信扫一扫

Style中的触发器(一)

兽怪海北 2022-02-27 阅读 75
wpf

一、 Style中的Trigger
1、 含义:(1)Trigger是触发器,即当某些条件满足时,就会触发一个行为(比如某些值的变化或动画的发生等)。
(2)触发器比较像事件,事件一般是由用户操作触发的,而触发器除了有事件触发型的EventTrigger外还有数据变化触发型的Trigger/DataTrigger及多条件触发型的MultiTrigger/MultiDataTrigger等。
2、五大类触发器:EventTrigger(事件触发器)、Trigger(触发器)、DataTrigger(数据触发器)、MultiTrigger(多条件触发器)、MultiDataTrigger(多条件数据触发器)。
二、 基本Trigger(触发器)
1、含义:(1)Trigger类是最基本的触发器。类似于Setter设置器,Trigger触发器也有Property和Value这两个属性,Property是Trigger关注的属性名称(属性或事件的行为),Value是触发条件(属性值或事件行为的对应值)(如果页面上有触发器设置的控件,并且相对应资源指定的属性或行为,其属性值或对应的值是否等于Value设置的属性值或对应值,如果等于就会触发当前设置的资源样式)。
(2)Trigger触发器还有一个Setter属性,此属性值是一组Setter,一旦触发条件被满足,这组Setter的“属性—值”就会被应用,触发条件不在满足后,各属性值会被还原。(如果触发器的触发条件是页面加载,那么运行是就发生设置的Setter属性,在页面关闭后,就会还原回原来的属性数据。)
2、注意:因为Triggers不是Style的内容属性,所以 <Style.Triggers>…</Style.Triggers>这层标签不能省略,但Trigger是Trigger的内容属性(Trigger标签里面的<Trigger.Setters>…<Trigger.Setters>标签对是Trigger的元素属性标签),所以<Trigger.Setters>…<Trigger.Setters>这层标签是可以省略的。(内容属性是可以省略)
3、例如:实现下图运行的效果:在这里插入图片描述
4、实现的代码如下图所示:在这里插入图片描述
三、 MultiTrigger(多条件触发器)
1、含义:MultiTrigger是个容易让人误解的名字,会让人以为是多个Trigger集成在一起,实际上叫MultiConditionTrigger更合适,因为必须多个条件同时成立时才会被触发。(设置的多个条件必须同时成立或满足时,才会触发样式的触发器。)
2、注意:(1)MultiTrigger比Trigger多了一个Conditions属性,需要同时成立的条件就存储在这个集合中。
(2)设置所有的条件放在<MultiTrigger.Conditions>…</MultiTrigger.Conditions>集合里面,条件是没有限定的,可以任意编写;触发时的控件样式就放在<MultiTrigger.Setters>…</MultiTrigger.Setters>的标签里面。
3、 例如:实现下图运行的效果: 在这里插入图片描述
4、实现的代码如下图所示:在这里插入图片描述

举报

相关推荐

0 条评论