通过人工定制外观来实现 Alpha 混合
可以通过 TreeList 控件及列提供的外观属性指派 TreeList 元素的透明度。 这些属性是:
- TreeList.Appearance —— 为所有 TreeList 元素提供默认的外观设置。
- TreeListColumn.AppearanceCell 和 TreeListColumn.AppearanceHeader —— 为特定列重写默认的外观设置。
当为 TreeList 行、列和/或空白区提供透明或半透明背景色时,最终用户可以看到控件的背景。
要把背景图像指派到 TreeList 控件,则使用它的 BackgroundImage 属性:
必须调用 XtraTreeList 设计器 把完全透明的背景色指派到没有被节点占据的空间。

在运行时刻使用下列代码也可以完成此任务。
C# | ![]() |
---|---|
treeList1.BackgroundImage = Image.FromFile("E:\\Images\\Textures\\MultiColored\\multi163.jpg");
treeList1.Appearance.Empty.BackColor = Color.FromArgb(0, 0, 0, 0);
|
Visual Basic | ![]() |
---|---|
TreeList1.BackgroundImage = Image.FromFile("E:\Images\Textures\MultiColored\multi163.jpg")
TreeList1.Appearance.Empty.BackColor = Color.FromArgb(0, 0, 0, 0)
|
下面的插图展示了在执行上述示例代码之前和之后的 XtraTreeList 控件。

下列代码把 Alpha 混合应用于奇数节点和偶数节点。 也修改了这些行的前景色,并启用了相应的外观。
C# | ![]() |
---|---|
using DevExpress.Utils; // ... treeList1.Appearance.OddRow.ForeColor = Color.White; treeList1.Appearance.OddRow.BackColor = Color.FromArgb(120, Color.DarkGreen); treeList1.Appearance.EvenRow.ForeColor = Color.Black; treeList1.Appearance.EvenRow.BackColor = Color.FromArgb(150, Color.Orange); treeList1.OptionsView.EnableAppearanceEvenRow = true; treeList1.OptionsView.EnableAppearanceOddRow = true; |
Visual Basic | ![]() |
---|---|
Imports DevExpress.Utils ' ... TreeList1.Appearance.OddRow.ForeColor = Color.White TreeList1.Appearance.OddRow.BackColor = Color.FromArgb(120, Color.DarkGreen) TreeList1.Appearance.EvenRow.ForeColor = Color.Black TreeList1.Appearance.EvenRow.BackColor = Color.FromArgb(150, Color.Orange) TreeList1.OptionsView.EnableAppearanceEvenRow = True TreeList1.OptionsView.EnableAppearanceOddRow = True |
结果如下图所示。

![]() |
---|
这种实现 Alpha 混合的方法有一个缺点。 当改变控件的外观 (例如通过控件的 设计器 改变样式方案) 时,颜色的 Alpha 成分不会被保存。 使用 XtraTreeListBlending 组件可以避开这种限制。 请参阅 使用 XtraTreeListBlending 组件实现 Alpha 混合 主题来学习更多内容。 |