Style是Property值的collection。由于XAML无法使用循环创建多个“具有完全相同Property”的element,所以Style被用来你不这方面的不足。比方说你有很多个按钮,你希望这些按钮有相同的样式,这样就需要用到Style,这一点有点类似ASP.NET中的CSS或者是skin概念。
Style类型定义在System.Windows中,其派生自Object,且没有子类。Style最重要的Property是Setters,此Setters Property类型为SetterBaseCollection,是SetterBase对象的集合。SetterBase是抽象类型,它的子类有Setter和EventSetter。这些对象被称为Setters,是因为它们的作用是设定Property或者事件处理函数。
在Style的定义内,Setter的对象会比EventSetter对象的出现几率更高。Setter基本上和某个具有一个值的property相关联,而Setter类型的两个重要property是Proerty(类型为DependencyProperty)和Value(类型为Object)。在XAML中,Setter看起来是这个样子的:
<Setter Property="DependencyPropety" Value="Object" />
Style通常是被定义在Resource section中,这样Style可以被许多element和控件公用。和其它资源一样,Style需要一个文字的key来识别和引用Style。
Style除了具有Setter和EventSetter属性外还具有BaseOn、TargetType、Resources和Triggers共六个属性。
Setter与Triggers的区别在于,Setter是在element第一次创建时进行property设定。Triggers只有当某些事情发生时,才会去设定property。Triggers具有Trigger、MultiTrigger、DataTrigger、EventTrigger、MultiDataTrigger子类。
转载于:https://www.cnblogs.com/dequan-lee/archive/2008/06/20/1226466.html