类型样式允许您以简化的方式定义元素样式。
从v.17.2开始,DevExpress WPF套件提供了DevExpress.Xpf.TypedStyles程序集,其中包含以下控件的类型样式:
DevExpress WPF v21.1高速下载
类型样式 VS 常规样式
下图演示了常规样式和类型样式之间的区别。
要为多个按钮设置常规样式,您应该实现一个带有TargetType=Button的 Style,并在单独的Setter中指定每个属性。
类型样式允许您通过以下方式为所有按钮定义样式:
示例:ButtonStyle用于标准Button控件,GridControlStyle用于DevExpress GridControl。
支持的功能
类型样式支持所有常规样式功能。
附加属性
附加属性收集在 MergedStyles 属性中:
XAML
事件
您可以在没有EventSetter的情况下指定事件处理程序:
XAML
标记扩展
立即返回其值的标记扩展(除了 BindingBase 和 DynamicResoureExtension)可以以常规方式在类型样式中使用:
XAML
Green
使用 BindingBase 和 DynamicResourceExtension 标记扩展的“*_Source”属性:
XAML
DevExpress 扩展(DXBinding/DXEvent/DXCommand)
DXBinding/DXCommand与类型样式无缝协作。
XAML
注意:DXEvent 不适用于类型化样式。
基本样式
您可以通过以下方式定义基本样式:
XAML
Setters
您可以通过填充 *Style.Setters 集合来使用常规 setter。
XAML
隐式样式
要定义隐式样式,请使用x:Key替代TargetType:
XAML
目标类型在内部设置为 typed 样式,因此您不应手动设置它。 例如,要为ListBox 定义VirtualizingPanelStyle,您需要先定义ListBoxStyle。
XAML
触发器
除了类型化样式之外,DevExpress.Xpf.TypedStyles 程序集还包含每个受支持控件的类型化触发器:
XAML
您可以在模板中使用类型化触发器。 为此,请指定类型化触发器的 SourceName 或 TemplateName 属性:
XAML
如果为多个源对象创建触发器,则可以定义多个触发器:
XAML
数据触发器
使用 TypedDataTrigger 将类型样式与数据触发器一起使用。
XAML
在您的代码中使用
引用和命名空间
所有类型化的样式和触发器都在 {Corresponding control namespace}.TypedStyles 命名空间中实现。
示例:ButtonStyle - System.Windows.Controls.TypedStyles.
类型化样式的 XAML 命名空间与相应控件的命名空间相同——您不需要添加任何额外的命名空间引用。 要使用类型化样式,请在您的项目中引用 DevExpress.Xpf.TypedStyles 程序集。
限制
性能
类型样式的性能与常规样式相当,以下常规样式在测试机上应用 200 毫秒:
XAML
以下通过类型样式实现的模拟在测试机上应用了 130 毫秒:
XAML
DevExpress WPF | 下载试用
DevExpress WPF拥有120+个控件和库,将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpress WPF能创建有着强大互动功能的XAML基础应用程序,这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。 无论是Office办公软件的衍伸产品,还是以数据为中心的商业智能产品,都能通过DevExpress WPF控件来实现。
DevExpress技术交流群5:742234706 欢迎一起进群讨论
更多DevExpress线上公开课、中文教程资讯请上中文网获取