PNG图像有透明的部分,我希望这个图像作为我的表格的背景
我已将ControlStyles.SupportsTransparentBackColor
设置为true
并使用this.BackColor = Color.Transparent;
但这根本不起作用,当我启动应用时,背面颜色显示为灰色。即使我在属性 - >外观中将 BackColor 设置为透明。我可以在表单设计预览中看到它是透明的,但是当我启动应用程序时它仍然显示为纯灰色
使用TransparencyKey
也会给我带来不好的结果 - PNG图像的半透明像素变成了TransparencyKey
颜色,我无法使用TransparencyKey
的透明颜色。寻求帮助。
例:
http://i.stack.imgur.com/u9p6N.jpg
答案 0 :(得分:1)
您可能错误地使用TransparencyKey
。此属性背后的想法是指定为TransparencyKey
的颜色将是透明的。例如。如果你设置myForm.TransparencyKey = Color.Red
任何红色的东西都是透明的。但是,如果红色的阴影与描述为Color.Red
的阴影不同,则它将不透明。
或者,换句话说,它将产生透明的背景:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
this.BackColor = Color.FromArgb(100, 0, 0);
this.TransparencyKey = Color.FromArgb(100, 0, 0);
}
}
但这不透明:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
this.BackColor = Color.FromArgb(99, 0, 0);
this.TransparencyKey = Color.FromArgb(100, 0, 0);
}
}
现在,如果您的图像具有白色背景并且设置this.TransparencyKey = Color.White
,则图像的白色部分将是透明的。但是如果有任何灰色的白色区域,你会看到这种颜色而不是透明的背景。
如果是这种情况,您可能需要编辑图像以确保背景无处不在。