具有透明背景的重叠PictureBox

3

我想创建两个或更多具有透明背景的重叠PictureBox,但是如果我这样做,我只能看到一个图像:

enter image description here

我是这样创建我的PictureBox的:

PictureBox pb1 = new PictureBox();
pb1.Size = new Size(32, 32);
pb1.Location = new Point(0,0);
pb1.Image = Image.FromFile("../Graphics/Grounds/ground.png");
pb1.Visible = true;

PictureBox pb2 = new PictureBox();
pb2.Size = new Size(32, 32);
pb2.Location = new Point(0,0);
pb2.Image = Image.FromFile("../Graphics/Grounds/human.png");
pb2.Visible = true;

然后我将这两个PictureBox添加到我的Panel中:

panel1.Controls.Add(pb1);
panel1.Controls.Add(pb2);

那么为什么它只显示一个 PictureBox

可能是一个重复的问题,与https://dev59.com/jW035IYBdhLWcg3wQtyn相似。 - Roy Dictus
3
请看这个答案:https://dev59.com/jW035IYBdhLWcg3wQtyn#9158849 - Tobia Zambon
2个回答

0

尝试将 panel1.Controls.Add(pb2); 更改为 pb1.Controls.Add(pb2);
确保您将 pb1 设置为容器的正确位置


-1
如果你的 human.png 有透明背景:
pb2.BackColor = Color.Transparent;

1
不,这里的主要问题是人物picturebox应该作为groundPicBox的子控件插入,正如在https://dev59.com/jW035IYBdhLWcg3wQtyn#9158849和Hans Passant答案中所报告的那样。 - Tobia Zambon

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接