WPF 样式与线程服务全解析
1. WPF 样式基础
WPF 的控件高度依赖样式和模板,其设计理念是让图形设计师和主题作者能完全掌控控件的默认设置,所以控件本身通常不含硬编码的属性值、默认值或视觉效果。
在 WPF 中,每个属性都有值优先级的概念,样式、数据绑定、继承等特性都按严格顺序应用。实际上,每个元素会应用两个样式,不过使用控件时通常只看到一个,另一个供控件作者使用。并且,局部属性值会优先于样式指定的值。
样式继承是 WPF 样式的一个重要特性。可以创建一个基础样式,多个样式能从该基础样式继承。样式只允许有一个父样式,但一个基础样式可应用于多种子样式。例如,创建一个适用于所有控件的基础样式,定义一些通用的字体属性:
<Style x:Key='baseControls' TargetType='{x:Type Control}'> <Setter Property='FontSize' Value='14pt' /> <Setter Property='FontFamily' Value='Corbel, Arial' /> <Setter Property='Margin' Value='2' /> </Style>然后,通过设置BasedOn属性,将这个基础样式关联到多个控件类型上:
<Style x:Key='{x:Type TextBox}'