如何使标签图像的背景透明(C#)

如何使标签图像的背景透明(C#),c#,bitmap,background,label,transparency,C#,Bitmap,Background,Label,Transparency,我想将带有图像的标签移到带有图像的其他标签之上,但不想看到难看的黑色背景。所以我试着用这个: Bitmap alienbild = new Bitmap(@"path.png"); public Form1() { Color backColour = alienbild.GetPixel(0, 0); alienbild.MakeTransparent(backColour); labelalien.Size = new Size(50, 35); labelalien.Image = ali

我想将带有图像的标签移到带有图像的其他标签之上,但不想看到难看的黑色背景。所以我试着用这个:

Bitmap alienbild = new Bitmap(@"path.png");
public Form1()
{
Color backColour = alienbild.GetPixel(0, 0);
alienbild.MakeTransparent(backColour);
labelalien.Size = new Size(50, 35);
labelalien.Image = alienbild;
}
我正在使用的图片也是50x35,并且是用油漆绘制的,如果有必要的话。 标签的背景色也设置为透明

但是背景仍然是黑色的,破坏了我用颜料画的漂亮画。用一只老鼠

我错过了什么


提前谢谢你

您仅采样1个像素,但很可能并非所有“背景”像素都具有这种精确的颜色。还要确保标签嵌套,而不是与其他控件重叠,因为winforms中的透明度仅支持嵌套控件,而不支持重叠控件!!如果一切都是透明的,那么你可以看到显示器的背面。必须有人决定背景应该是什么样子。标签可以将其父对象的前景作为背景,但堆叠效果不起作用。将油漆层堆叠在彼此的顶部需要不同的渲染技术,WPF默认使用的渲染技术。在Winforms中,您将使用图形类,而不是控件类。Label和PictureBox是Graphics.DrawString()和Graphics.DrawImage()的非常浪费的替代品。但是很方便。我检查了一下,所有的背景像素都有相同的颜色。你说嵌套是什么意思?我想将一个具有.Image属性且背景透明的标签移动到另一个具有非透明图像的标签上方。在此处找到了一个具有解决方案的类似问题: