使用C1PrintDocument控件 > 样式 > Ambient 以及Non-Ambient Style 属性 |
所有样式属性(字体,颜色,边框,等等)可以根据其语义分为两类:环境和非环境的。环境属性是那些影响对象的内容(例如,文本的字体)而非环境属性是用于对象的adornment,或者decoration(例如,对象周围的边框)。这种区分非常自然而且非常有用,在大多数情况下所期望的行为(尤其是继承规则)对于这两组而言是截然不同的。
对于环境属性,通常期望它在继承的对象层次结构中可以被传播,因此设置一个容器对象的环境属性,将影响其包含的全部对象(比如说一个表格,如果您设置了表格本身的字体,您通常是希望这个字体应用到表格中间的每一个单元格,除非在更低层级针对某个特定的单元格覆盖了该设置)。这一点和非环境属性有着显著的不同。例如,如果您希望在该表格之前之后添加空白,您应当设置该表格的Space属性,显然您不希望那个间距设置应用到全部的单元格上。在C1PrintDocument中,这种将样式属性划分为环境和非环境两组是内置的。总的来说,这意味着通常只管设置一个对象的样式的属性(不必考虑太多关于环境的因素)即可按照您的期望生效。
关于所有样式属性的完整列表,指示哪些属性是环境而哪些属性不是,将分别在以下章节分开的阐述(参见样式属性以及默认值)。但是应用以下通用规则:
环境样式属性控制对象内容的显示(比如说文本字体)。默认情况下,环境属性按照对象的包含层次关系传播,也就是说,一个设置在容器对象样式的环境属性的值将应用到该对象所包含的全部对象。
非环境样式属性控制对象的decoration(比如边界)。默认情况下,非环境属性不会按照对象的包含关系进行传播,但是可以沿着Style.Parent属性进行传播。