当我们需要设计出效果和样式更复杂的控件时,或一个样式的控件会在多处重复使用,亦可再修改其部分特征时,使用控件模板是更好地设计和组织控件样式的办法。
Windows Presentation Foundation (WPF) 样式设置和模板化是指一套功能。其中,样式(Style)是一种将一组特征属性值应用到多个元素的方法,用于设置控件的外观属性如长宽、颜色、字体、大小等;控件模板(ControlTemplate)是一种定义控件的外观和结构的方法,用于重写自定义控件的视觉行为如形状、事件、触发器和动画等。这套功能使开发者和设计者能够为其产品创建极具视觉表现力的效果和一致的外观。 自定义应用的外观时,需要一个强大的样式设置和模板化模型,以便维护和共享应用内部和应用之间的外观。 WPF 就提供了这样的模型。本节侧重于应用的样式设置和模板化两方面,不讨论任何数据绑定概念。
6.1 Window.Resources
6.1.1 资源的声明和使用
了解资源很重要,正是这些资源使样式和模板能够重复使用。资源是可以在应用中的不同位置重复使用的对象。 每个WPF的界面元素(用于显示和交互的可视化对象如控件、布局、形状、图像等)都具有Resources属性,这个属性的类型为ResourceDictionary类型,也就是资源字典,其能够以键值对的形式存储资源,当我们需要某个资源时,使用键值对可以索引到资源对象。
我们可以在任何元素上去定义资源,但是最常见方便的是在根元素上定义资源,也就是Window。在标记中定义资源时,可通过 x:Key 指令来分配唯一键。