如何使用C#使图片背景透明?

3

我有3个pictureBox,每一个都有透明图像,就像这样:

enter image description here

为了让图片2和图片3对于图片1透明,我写了下面的代码:

    pictureBox2.Parent = pictureBox1;
    pictureBox3.Parent = pictureBox1;

现在,我的问题是:如何使图片2对于图片3透明?

你使用什么图像格式? - SamiHuutoniemi
具有PNG格式的透明图像。 - Free User
1
https://dev59.com/6HRC5IYBdhLWcg3wJNmf#434706 - SamiHuutoniemi
我认为我们应该看到您使用的实际真实图像文件。您不能也上传它们吗? - tafa
我想让三个pictureBox彼此透明。 - Free User
1个回答

4

这种方法的效果有限,当你开始嵌套图像时,你已经超出了这个限制。你会发现PictureBox只能对其父控件进行透明化,其中其他PB贡献像素的复合图像部分不可见。你会看到父容器的背景而非图片。

你需要切换到单个PictureBox并编写代码。实现它的Paint事件处理程序并调用e.Graphics.DrawImage()来绘制图像。层叠现在已经不再是问题,绘制总是对其背景透明化。WPF也是采用这种方式来实现透明度的。


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