本文档阐述了在 XtraReports 中实现样式的主要概念。 介绍了样式的概念,描述了样式如何取代控件的外观属性,说明了奇偶样式功能,并演示了如何把报表样式存储到样式表中。
本文档由下列小节组成。
样式和样式取代
除了可以为每个控件或带区指定 外观属性 值之外,还可以在报表中创建一个全局样式。 样式是通过 XRControlStyle 类的实例表示的,并且位于报表的由 XtraReport.StyleSheet 属性返回的集合中。
要把特定的样式指派给控件,则在设计时刻把它的 Styles.Style 属性 (或在运行时刻设置 XRControl.StyleName 属性) 设置为被存储在报表样式表集合中的样式之一。
样式规定了与控件 (或带区) 的外观属性相同的外观属性。 因此,如果在样式和控件 (或带区) 自身的外观属性中,同时设置了某个属性,那么就需要使用优先级来判定使用哪个属性。 为此,设计了 XRControl.StylePriority 属性。
在默认情况下,伴随样式和外观属性结构的所有 样式优先级 的选项 (StylePriority.UseBackColor、StylePriority.UseBorderColor 等等),都被设置为 true (除去 StylePriority.UseTextAlignment 属性以外)。 这意味着,如果通过 Styles 属性为控件指派了任一样式,那么样式的所有属性都比在控件或父控件中存储的属性有更高的优先级。 如果需要让某些属性由控件决定,而不是由它的样式决定,那么就要把相应的 Use* 属性设置为 false。
下面的插图展示了 XRControl.StylePriority 属性如何起作用。
在设计时刻,如果控件的某些外观属性值被改变,那么对于此控件,StylePriority 对象相应的 Use* 属性就被设置为 false。 在运行时刻,应该显式地把 StylePriority 对象相应的 Use* 属性设置为 false。
注意 |
---|
注意,当涉及到 附条件的格式设置 时,它规定的外观比上面描述的属性有更高的优先级。 |
奇偶行样式
有时更适宜 (例如对于 表格报表) 使用 奇偶行样式 功能。 它允许在视觉上把报表中连续的数据字段划分开,从而有更好的可读性。 要把这些样式应用于控件,则应该使用其 XRControl.OddStyleName 和 XRControl.EvenStyleName 属性。
可以在 如何: 使用奇偶行样式 主题中找到相关的按步骤的操作指令。
样式表
在设计时刻可以使用 Styles Editor(样式编辑器) 来管理报表的样式表、定制样式表、存储到文件以及从文件中加载。 因此,可以创建多个样式表,并且在设计时刻或运行时刻加载。
保存报表的样式表的方式有两种。 第一种方式是保存为外部文件 (有 REPSS 扩展名),然后使用 XtraReport.StyleSheetPath 属性,以只读模式加载到报表 (这种方式在 如何: 创建和存储报表样式表 主题中进行了描述)。 第二种方式是把样式表存储在报表内 (使用 XtraReport.StyleSheet 属性),因此可以按照需要进行修改,并和报表本身一起被保存。
注意 |
---|
如果加载了 XtraReport.StyleSheetPath 属性指定的样式表中包含的样式,并且报表中已经包含同名的样式,那么后者将被覆盖。 |