引用控制颜色的Alpha值

时间:2013-04-16 20:34:08

标签: c# winforms colors alpha trackbar

我有一个文本框,我使用它的背景颜色作为颜色预览,以及一个控制该颜色的alpha的轨迹栏。我正在使用以下代码:

private void trackAlpha_ValueChanged(object sender, EventArgs e) {
    colorPreview.BackColor = Color.FromArgb(trackAlpha.Value, colorDialog.Color.R, colorDialog.Color.G, colorDialog.Color.B);
}

事实证明,滚动alpha不会对预览产生任何影响。

关于为什么会发生这种情况的任何想法?

1 个答案:

答案 0 :(得分:1)

WinForms Control支持alpha通道,但默认情况下不支持。对于您想要具有半透明背景颜色的控件,您必须调用SetStyle方法:

this.SetStyle(ControlStyles.SupportsTransparentBackColor, true);

该方法受到保护,因此您必须从您想要的控件继承并在构造函数或其他内容中调用它。此控件将是colorPreview所指的任何内容。