XtraBars 套件提供了对 alpha 混合的控制,使用 alpha 混合能为 bar 元素提供不同程度的透明度。 本主题描述了 Alpha 混合的概念以及可以用于增强 XtraBars 外观的方式。
Alpha 混合的概念
XtraBars 允许定制它的元素 (bars、菜单等) 的外观。 有许多可以被调整的外观特征。 其中包括元素的背景色和前景色。 颜色通过四字节整数值表示; 其中三个字节的取值用于表示红色、绿色、蓝色的亮度。 第四字节取值指定颜色的 alpha 通道,并且设置透明度。 Alpha 通道值的范围是从 0 (此时该元素完全透明) 到 255 (此时该元素完全不透明)。 如果没有为 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) |
在设计时刻,可以通过把所需的颜色值输入到属性值中,来指定元素的颜色。 考虑把下列图像作为一个如何在设计时刻指定半透明蓝色的示例。
当把 alpha 通道为 0 的值指派到某个元素时,它将变成透明的。 因此如果把一种透明色指派为元素的背景,则透过它可以看到它下面的控件的内容。
当 Bar 管理器 被创建时,它自动创建四个 停靠控件 并把它们停靠到相应的窗体边缘。 停靠控件 (停靠站) 被设计用于在 bars 被停靠到容器 (窗体) 的任一边缘时显示 bars。 可以使用它们的 Appearance 属性来提供已停靠 bars 的背景设置。
使用背景图像
Alpha 混合功能通常与背景图像结合使用,来有效地增强某个控件的外观与感觉。 完成此任务的共同方式是把图像指派到该元素的外观对象的 AppearanceObject.Image 属性,并把它的 AppearanceObject.BackColor 属性设置为透明。 下面的插图展示了以这种方式使用 alpha 混合功能的一个示例。
在运行时刻也可以使用下述示例代码来完成该任务。
C# | 复制代码 |
---|---|
barSubItem1.MenuAppearance.Menu.BackColor = Color.FromArgb(170, 255, 255, 255);
barSubItem1.MenuAppearance.Menu.Image = Image.FromFile("C:\\Images\\menu.gif");
|
Visual Basic | 复制代码 |
---|---|
BarSubItem1.MenuAppearance.Menu.BackColor = Color.FromArgb(170, 255, 255, 255)
BarSubItem1.MenuAppearance.Menu.Image = Image.FromFile("C:\Images\menu.gif")
|
下一幅插图展示了被指派到顶部停靠控件中的自定义图像。 注意,应该使用透明的背景色来让背景图像可视。
下面的示例代码展示了如何在运行时刻指定图像:
C# | 复制代码 |
---|---|
barDockControl1.Appearance.BackColor = Color.Transparent;
barDockControl1.Appearance.BackColor2 = Color.Transparent;
barDockControl1.Appearance.Image = Image.FromFile("C:\\image1.jpg");
|
Visual Basic | 复制代码 |
---|---|
barDockControl1.Appearance.BackColor = Color.Transparent
barDockControl1.Appearance.BackColor2 = Color.Transparent
barDockControl1.Appearance.Image = Image.FromFile("C:\image1.jpg")
|