WPF触发器

2021-08-17 15:58

阅读:899

标签:扩展   group   bind   self   事件触发   multi   blog   cond   描述   WPF中的触发器,是对WPF事件的一种封装,WPF中的触发器,有多种方式,总结起来可分为: 控件触发(FrameworkElement.Triggers集合) 样式触发(Styles.Triggers集合) 控件模板触发(ControlTemplate.Triggers集合) 数据模板触发(DataTemplate.Triggers集合) 每个对应的触发器都是一个集合,上面所有的Triggers都是一个TriggerCollection的泛型集合,其定义基本都是如此: public TriggerCollection Triggers { get; } TriggerCollection的定义如下: public sealed class TriggerCollection : Collection 我们查看其继承关系 System.Windows.TriggerBase类 System.Windows.DataTrigger 数据触发器System.Windows.EventTrigger 事件触发器System.Windows.MultiDataTrigger 多数据触发器System.Windows.MultiTrigger 多属性触发器System.Windows. Trigger 属性触发器 所有的触发器都是TriggerBase的子类,那么TriggerCollection集合在不同的类中,其泛型的子类不同,我们分别对每个触发器做简单介绍 1、属性触发Trigger  顾名思义,属性触发器是由属性的改变而引起的,所以属性触发器有几个关键属性:  Property:获取或设置返回的值进行比较的属性 Value 触发器的属性。 比较是引用相等性检查。(只有依赖属性才有用) Value:获取或设置要与该元素的属性值进行比较的值。 比较是引用相等性检查 Setter:获取一套 Setter 对象,描述要应用当满足指定的条件的属性值。 Setter: 属性是一个SetterBaseCollection 的集合,其定义如下: public SetterBaseCollection Setters { get; } Setter类: Property:获取或设置的属性与其 Value 将应用。(只有依赖属性才有用) Value:获取或设置要应用于指定此属性的值 Setter。 以下代码,指定了属性触发器的使用,由于属性触发一般应用与样式定义中。  2、多属性触发器MultiTrigger 多属性触发器,是之一个或者多个样式发生变化时候,才会触发的触发器,其有一个重要属性Condition,用于统计条件,MultiTrigger.Conditions是一个Condition的集合,做一个简单案例,就能说明:     3、事件触发器EventTrigger 事件触发器,是由控件的操作触发的信息,EventTrigger 属性里面,几个关键属性是: RoutedEvent:获取或设置将激活该触发器的 RoutedEvent。 Actions:获取事件发生时要应用的操作的集合。 主要用于指定路由事件和Actions,那么Actions是什么呢?其定义如下: public TriggerActionCollection Actions { get; } 它是一个TriggerAction的集合 System.Windows.Interactivity.TriggerAction          Microsoft.Expression.Interactivity.Core.CallMethodAction          Microsoft.Expression.Interactivity.Media.PlaySoundAction          Microsoft.Expression.Interactivity.Media.StoryboardAction          System.Windows.Interactivity.InvokeCommandAction 所以事件触发器,只能调用CallMethodAction,PlaySoundAction,StoryboardAction,InvokeCommandAction,所以事件触发器一般应用与动画中,我们以StoryboardAction为例,我们知道StoryboardAction是Storyboard的一个封装,其主要是封装了动作BeginStoryboard,该动作相当于调用BeginAnimation方法,我们案例如下:  4、数据触发DataTrigger 数据触发器,是使用在数据改变的触发,DataTrigger也有两个重要的属性 Binding:获取或设置产生数据对象的属性值的绑定。 Value:获取或设置要与此数据对象的属性值进行比较的值。 案例代码如下: 5、多数据触发器MultiDataTrigger 多数据触发器,是对数据触发器的扩展,需要同时满足多个数据改变的情况下才执行。   我们对5种触发器,在4个触发环境中,我进行了简单的分类,虽然有些触发器在有的触发方式中可以使用,但并不代表一定有作用,这个在使用中根据情况进行区分,分类如下:   触发方式 可使用的触发器 说明 控件触发 必须使用EventTrigger 用于调整界面,实现动画等 样式触发 Trigger EventTrigger MultiTrigger DataTrigger MultiDataTrigger 可使用所有触发器 控件模板触发   Trigger EventTrigger MultiTrigger DataTrigger MultiDataTrigger                 可使用所有触发器     数据模板触发 Trigger EventTrigger MultiTrigger DataTrigger MultiDataTrigger       可使用所有触发器 WPF触发器标签:扩展   group   bind   self   事件触发   multi   blog   cond   描述   原文地址:http://www.cnblogs.com/minhost/p/7464148.html


评论


亲,登录后才可以留言!