TransparencyKey在应用于面板上的控件时不起作用,该面板的不可见背景正在起作用。
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
this.TransparencyKey = Color.FromArgb(0, 0, 1);
panel1.BackColor = Color.FromArgb(0, 0, 1);
button1.BackColor = Color.FromArgb(0, 0, 1);
}
}
button1是panel1上的Control。 button1仍保留其原始背景色(30,30,30)
答案 0 :(得分:1)
根据Color.FromArgb的文档,您当前正在使用“ RGB”重载调用该方法-您指定的值仅填充颜色的“ RGB”部分,而忽略了“ A”或“ alpha”部分。您需要使用接受四个参数的重载:
button1.BackColor = Color.FromArgb(0, 0, 0, 1);
开始时请注意0
-这是alpha属性,将其设置为0
可使颜色透明。线索位于方法名称“ ARGB”中,它表示指定参数的顺序。
来自MS Docs:
FromArgb(Int32, Int32, Int32, Int32)
根据四个ARGB分量(alpha,红色, 绿色和蓝色)值。尽管此方法允许使用32位值 传递给每个组件,每个组件的值是有限的 到8位。