WPF的基础控件(十)

今天我给大家介绍的是WPF中的触发器,要了解触发器,首先知道触发器是什么?它是一种在WPF中叫做触发器的工具,来帮助我们完成图形显示功能。其中,WPF属性触发器是WPF中最常用的触发器类型,因为我们前边说过依赖属性具有垂直变更通知的功能,所以在使用属性触发器时会很方便,而且因为WPF中每个控件超过2/3的属性都是依赖属性,所以它用到的场合更多。
而触发器可以分为三种类型,分别是属性触发器(Property Trigger)、数据触发器(Data Trigger)和事件触发器 (Event Trigger)。属性触发器是当Dependency Property的值发生改变时触发,数据触发器是当普通.NET属性的值发生改变时触发,事件触发器是当路由时间被触发时调用。
而触发器更多的是与Style(样式)一起使用,因为构成Style最重要的两种元素是Setter和Trigger,Setter类帮助我们设置控件的静态外观风格,Trigger类则帮助我们设置控件的行为风格。再从某种意义上来说触发器也是一种Style,因为它包含有一个Setter集合,并根据一个或多个条件执行Setter中的属性改变。因为复用的缘故,Styles是放置触发器的最好位置。但对于每个FrameworkElement来说都有Triggers集合,你也可以放在Triggers集合里。
我接下来讲的是数据触发器Data Trigger,而数据触发器和属性触发器除了面对的对象类型不一样外完全相同的触发器。数据触发器主要是用来检测非依赖属性,也就是用户自定义的.NET属性的值发生变化时来触发,并且调用符合条件的一系列Setter集合。
再接下来讲的是事件触发器 Event Trigger,而事件触发器,顾名思义是在某个事件被触发时用来调用这个触发器所造成的的相关操作。因为WPF框架提供了用XAML来标记的对象和事件等,所以WPF框架提供了一些在普通.NET开发中看似没用的属性例如IsMouseOver属性, IsPressed属性等,这是为了给XAML来标记用的,使XAML可以很方便的通过某个属性来判断状态,也方便了Property Trigger的应用。而作为事件触发器来说,它所做的事情和Property Trigger触发器的功能相类似,不过是它的内部不能是简单的Setter集合,而必须TriggerAction的实例。

代码如下:

 - <EventTrigger RoutedEvent="Mouse.MouseEnter"
                   SourceName="grdNormalButton">
                   <BeginStoryboard Storyboard="{StaticResource Button_MouseEnter}" />    </EventTrigger>

效果图如下:
在这里插入图片描述

之前我和你们讲的都是针对单个条件的触发器,也就是说当某一个条件满足时就会触发。而现实中我们可能需要满足很多个条件时才触发一系列操作,这个时候就需要用到MultiDataTrigger或MultiTrigger。MutliDataTrigger和MultiTrigger都具有一个Conditions集合用来存放一些触发条件,这里的Condition之间是and的关系,当所有条件都满足时,Setter集合才会被调用。根据名字就可以看清楚:MultiDataTrigger用来实现多个数据触发器(只用于普通.NET属性)满足条件时调用;MultiTrigger用来实现多个属性触发器(用于依赖属性)满足条件时调用。

代码图如下:
在这里插入图片描述

效果图如下:
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值