由视图提供的外观可以用于指定如何绘制特定类型的视图元素 (标头、单元格、脚注等)。 但是可能存在需要为相同类型的元素提供不同外观的情形。 本主题描述如何为个别列中的数据单元格指派外观,以及如何为个别带区标头和列标头提供自定义外观。 关于外观的总说明,请参阅 外观概述 文档。
定制个别列中的单元格的外观
在默认情况下,使用由视图提供的外观设置来绘制视图内的数据单元格。 这允许为所有数据单元格,以及为获得焦点的行和选中行内显示的单元格指定公共的外观。 网格视图额外允许为偶数行和奇数行内显示的单元格指定不同的外观。
但是,可能存在这些外观定制还不够用的情况。 例如,可能需要为显示在不同列中的单元格提供不同的外观。 要这样做,则使用列的 GridColumn.AppearanceCell 属性。 该属性返回可以提供用于绘制列单元格的外观设置的 AppearanceObjectEx 对象。
在默认情况下,这些外观设置的优先级,只高于用于绘制常规行内及选中行内单元格的视图外观。 它们会被用于绘制获得焦点行和获得焦点单元格的视图外观覆盖掉。 要使得列单元格的自定义外观设置有更高的优先级,从而覆盖获得焦点行和获得焦点单元格的视图外观,则应该把 AppearanceOptionsEx.HighPriority 选项设置为 true。
下面的示例展示了如何在设计时刻为列中的单元格提供自定义外观设置。 网格视图的初始外观在下面的插图中显示。
按照下列步骤执行操作。
-
可以使用许多方式来改变列单元格的外观。 下面的插图展示了如何使用 XtraGrid 设计器 来完成此任务。
-
运行此应用程序。 网格控件的外观就像下图显示的那样。
也可以定制列单元格的外观,而无须调用 XtraGrid 设计器。 要这样操作,则单击所需列的标头,在 属性 窗口中显示列的设置,并定制由 GridColumn.AppearanceCell 属性提供的外观设置。
所有上述步骤可以以程序方式实现,如下所示:
C# | 复制代码 |
---|---|
gridView1.Columns["UnitPrice"].AppearanceCell.BackColor = Color.LightSteelBlue; gridView1.Columns["UnitPrice"].AppearanceCell.BackColor2 = Color.Azure; gridView1.Columns["UnitPrice"].AppearanceCell.ForeColor = Color.Black; |
Visual Basic | 复制代码 |
---|---|
GridView1.Columns("UnitPrice").AppearanceCell.BackColor = Color.LightSteelBlue GridView1.Columns("UnitPrice").AppearanceCell.BackColor2 = Color.Azure GridView1.Columns("UnitPrice").AppearanceCell.ForeColor = Color.Black |
定制个别卡片字段的外观
对于卡片视图,为个别卡片字段指定自定义外观的技术与上面描述的技术相同。 下面的插图展示了一个卡片视图,它有应用了不同外观的 Price 和 Link 卡片字段。
定制个别列标头和带区标头的外观
也可以为个别列标头和带区标头指派自定义外观。 此项技术与上面描述的技术类似。 要指定用于绘制个别列标头的外观设置,则使用列的 GridColumn.AppearanceHeader 属性。 对于带区,类似的是使用 GridBand.AppearanceHeader 属性。
下面的插图展示了一个带区网格视图,它的带区标头和列标头被使用不同的外观设置进行绘制。
注意 |
---|
当使用 Windows XP、Office2003 或 Skin 样式绘制视图时,用于绘制标头背景的外观设置不起作用。 |