XtraGrid 提供了一项 Alpha 混合功能,能为网格中的元素提供不同的透明度设置。 本主题描述 Alpha 混合 的概念,以及用于增强控件外观的方式。
Alpha 混合的概念
XtraGrid 提供了用于修改其元素的外观的设计时刻和运行时刻工具。 有许多可被修改的外观特征,包括元素的背景色和前景色。 颜色是由四字节取值指定的。 此取值的三个字节表示红色、绿色、蓝色的亮度。 第四字节取值指定颜色的 Alpha 通道,用于设置透明度。 如果 Alpha 通道被设置为 0,则元素完全透明。 如果 Alpha 通道被设置为255,则元素完全不透明 (默认值)。 这种指定颜色的方法被定义为使用 ARGB palette。
普通的 (不透明) 蓝色可以通过下列表达式指定:
C# | 复制代码 |
---|---|
Color myColor1 = Color.FromArgb(0, 0, 255); Color myColor2 = Color.Blue; |
Visual Basic | 复制代码 |
---|---|
Dim MyColor1 As Color = Color.FromArgb(0, 0, 255) Dim MyColor2 As Color = Color.Blue |
半透明的蓝色可以使用下列代码指定。
C# | 复制代码 |
---|---|
Color myColor1 = Color.FromArgb(127, 0, 0, 255); Color myColor2 = Color.FromArgb(127, Color.Blue); |
Visual Basic | 复制代码 |
---|---|
Dim MyColor1 As Color = Color.FromArgb(127, 0, 0, 255) Dim MyColor2 As Color = Color.FromArgb(127, Color.Blue) |
下图演示了如何在设计时刻把列单元格的背景色设置为半透明的蓝色。
当 0 alpha 通道被指派到某个元素时,该元素变得透明,不妨碍在它下面的对象。 因此如果把一种透明色指派为控件的背景,则透过它可以看到它下面的控件的内容。 当把这种颜色指派到 XtraGrid 控件的元素时,透过该元素可以看到控件的背景 (注意,如果元素不透明时,则 XtraGrid 控件的背景通常完全被该元素遮盖)。 如果网格的下层内容需要可视,则必须为构成网格的视图元素指派透明色。
Alpha 混合功能通常与背景图像结合使用。 这能有效地增强控件的外观与感觉。 实现这一点的共同方式是把图像指派到控件的 BackgroundImage 属性,并且为视图元素指派透明色。 下面的插图展示了以这种方式使用 alpha 混合功能的一个示例。
实现 Alpha 混合功能
有三种途径来实现 Alpha 混合功能:
-
这种途径意味着为 XtraGrid 控件的元素指派透明色。 请参阅 外观概述 主题获得改变元素外观的方式的列表。
-
这种途径意味着接管自定义绘制事件,使用透明画刷和画笔绘制视图元素。
-
使用 XtraGridBlending 组件实现 Alpha 混合
这种途径假设您使用 XtraGridBlending 组件。 该组件允许为视图元素的颜色设置 alpha 通道。 当元素的外观被改变,或当不同的颜色方案被指派到网格时,这种方式有利于保持 alpha 通道。