Alpha 混合功能允许通过使用透明画刷和画笔绘制元素,从而增强网格控件的外观。 本主题说明如何通过定制用于绘制网格元素的外观设置,来实现 Alpha 混合功能。 请参阅 Alpha 混合概述 主题获得 Alpha 混合功能的基本概念。
样式和 Alpha 混合
XtraGrid 控件提供了高级的外观技术,可以用于定制下列元素的外观:
- 特定类型的视图元素。 例如,可以修改列标头的外观、指示器单元格的外观、预览区的外观等。
- 个别列中的单元格。 请参阅 定制个别列、卡片字段与带区的外观 主题获知其他信息。
- 个别单元格。 实现这一点的方式在 定制个别行与单元格的外观 和 样式的格式化条件 主题中描述。
外观是通过 AppearanceObject 对象表示的,此对象提供了许多影响视图元素外观的属性。 当实现 Alpha 混合时,仅使用指定背景色和前景色的属性。 这些属性是 AppearanceObject.BackColor、AppearanceObject.BackColor2 和 AppearanceObject.ForeColor 属性。 前两个属性指定填充元素背景的渐变起始色和渐变结束色。 AppearanceObject.ForeColor 属性指定文本颜色。
注意,在设置元素的背景时有两种可能的情形:
- 没有设置 AppearanceObject.BackColor2 属性 (它的取值为 Color.Empty)。 在这种情况下,元素的背景被以实心画刷绘制,其颜色由 AppearanceObject.BackColor 属性指定。 此颜色的 alpha 通道指定整个元素的透明度。
- AppearanceObject.BackColor2 属性值不是 Color.Empty。 在这种情况下,元素的背景色从 AppearanceObject.BackColor 开始逐渐改变,到 AppearanceObject.BackColor2,其渐变方向由 AppearanceObject.GradientMode 属性指定。 背景的透明度也以相同的方向逐渐改变 (如果这些属性指定了不同的 alpha 通道)。
使用外观实现 Alpha 混合的示例
本示例展示了如何在设计时刻设置 XtraGrid 的空白区和分组面板的透明度。 结果,网格的背景图像将部分可视。
按照下列步骤操作:
-
选中网格控件,在 属性 窗口中显示它的属性,并把一幅图像指派到 BackgroundImage 属性。
-
调用 XtraGrid 设计器。 切换到 Appearances(外观) 页面。 选中 Empty 外观,并设置它的背景色为完全透明,如下图所示。 这样使得网格的背景图像在未被任何元素占用的视图区域内可视。
-
选中 GroupPanel 外观,并修改它的背景色,如下图所示。
-
下面的插图展示了运行结果。
所有上述操作也可以通过代码完成,如下面的示例代码所示。 代码被封闭在 BaseView.BeginUpdate 和 BaseView.EndUpdate 方法调用之间,来避免控件多次被更新。
C# | 复制代码 |
---|---|
// Locks the control to prevent it from being repainted. gridControl1.MainView.BeginUpdate(); try { // Specify the grid's background image. gridControl1.BackgroundImage = Image.FromFile("c:\\Images\\gridBgImage.jpg"); // Modify the appearance settings used to paint an Empty space. gridView1.Appearance.Empty.BackColor = Color.Transparent; // Modify the group panel's appearance settings. gridView1.Appearance.GroupPanel.BackColor = Color.FromArgb(100, 62, 109, 185); } finally { // Unlocks the control and repaints it with respect to the changes made. gridControl1.MainView.EndUpdate(); } |
Visual Basic | 复制代码 |
---|---|
' Locks the control to prevent it from being repainted. GridControl1.MainView.BeginUpdate() Try ' Specify the grid's background image. GridControl1.BackgroundImage = Image.FromFile("c:\Images\gridBgImage.jpg") ' Modify the appearance settings used to paint an Empty space. GridView1.Appearance.Empty.BackColor = Color.Transparent ' Modify the group panel's appearance settings. GridView1.Appearance.GroupPanel.BackColor = Color.FromArgb(100, 62, 109, 185) Finally ' Unlocks the control and repaints it with respect to the changes made. GridControl1.MainView.EndUpdate() End Try |
XtraGrid 设计器 的 Appearances(外观) 页面提供的设计时刻工具不仅可以修改外观的布局,也可以保存和加载布局。 在运行时刻,使用 BaseAppearanceCollection 类提供的方法,外观布局可以被保存,然后被恢复。 它允许外观设置被保存到系统注册表、流或 XML 文件中。 关于外观的总说明,请参阅 外观概述 文档。