样式与资源

WPF的Style样式。Style中的Trigger。Trigger,触发器,即当某些条件满足时会触发一个行为(比如某些值的变化或动画的发生等)。触发器比较像事件。事件一般是由用户操作触发的,而触发器除了有事件触发型的EventTrigger外还有数据变化触发型的Trigger/DataTrigger及多条件触发型的MultiTrigger/MultiDataTrigger等。
基本Trigger。Trigger类是最基本的触发器。类似于Setter,Trigger也有Property和Value这两个属性,Property是Trigger关注的属性名称,Value是触发条件。Trigger类还有一个Setter属性,此属性值是一组Setter,一旦触发条件被满足,这组Setter的“属性—值”就会被应用,触发条件不在满足后,各属性值会被还原。
MultiTrigger是个容易让人误解的名字,会让人以为是多个Trigger集成在一起,实际上叫MultiConditionTrigger更合适,因为必须多个条件同时成立时才会被触发。MultiTrigger比Trigger多了一个Conditions属性,需要同时成立的条件就存储在这个集合中。
由数据触发的DataTrigger。程序中经常会遇到基于数据执行某些判断情况,遇到这种情况时我们可以考虑使用DataTrigger。DataTrigger对象的Binding属性会把数据源源不断送过来,一旦送来的值与Value属性一致,DataTrigger即被触发。
多数据条件触发的MultiDataTrigger。有时我们会遇到要求多个数据条件同时满足时才能触发变化的需求,
由事件触发的EventTrigger。EventTrigger是触发器中最特殊的一个。首先,它不是由属性值或数据的变化来触发而由事件来触发;其次,被触发后它并非应用一组Setter,而是执行一段动画。因此,UI层的动画效果往往与 EventTrigger事件触发,另一个由MouseLeave事件触发。
资源是可以在应用程序的不同位置重用的对象。XAML资源的示例包括画笔和样式。每个框架级别的元素(FrameworkElement或FrameworkContentElement)都有一个resource属性,该属性包含资源定义的资源(作为ResourceDictionary)。可以在任何元素上定义资源,但是资源通常是在根元素上定义的。
当在页面根元素上定义一个资源时,页面逻辑树中的所有元素都可以访问它。
可以将资源引用为静态资源或动态资源。这可以通过使用StaticResource标记扩展或DynamicResource标记扩展来实现。通过替换已定义资源的值,StaticResource为属性提供了一个值,DynamicResource将属性值延迟为资源的运行时引用,从而为属性提供一个值。
资源的定义概括几点如下:①:与传统WEB应用中CSS样式表类似②:目的为了实现对象的重复使用③:有助于XAML代码重用,有助于应用维护的一致性④:定义资源的语法格式:<根元素对象.Resources>,<资源定义>,</根元素对象.Resources>
资源字典,即创建一个新的ResourceDictionary实例,然后使用对ResourceDictionary.add .的连续调用将所有资源添加到字典中。
资源字典中的每个资源必须有一个惟一的键。在标记中定义资源时,通过x: key指令分配惟一的键。通常,键是字符串;但是,你也可以通过使用适当的标记扩展将其设置为其他对象类型。定义资源之后,可以使用指定键名的资源标记扩展语法引用要用于属性值的资源。
资源的定义概括几点如下:①:与传统WEB应用中CSS样式表类似②:目的为了实现对象的重复使用③:有助于XAML代码重用,有助于应用维护的一致性④:定义资源的语法格式:<根元素对象.Resources>,<资源定义>,</根元素对象.Resources>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值