我有3个pictureBox,每一个都有透明图像,就像这样:
为了让图片2和图片3对于图片1透明,我写了下面的代码:
pictureBox2.Parent = pictureBox1;
pictureBox3.Parent = pictureBox1;
现在,我的问题是:如何使图片2对于图片3透明?
我有3个pictureBox,每一个都有透明图像,就像这样:
为了让图片2和图片3对于图片1透明,我写了下面的代码:
pictureBox2.Parent = pictureBox1;
pictureBox3.Parent = pictureBox1;
这种方法的效果有限,当你开始嵌套图像时,你已经超出了这个限制。你会发现PictureBox只能对其父控件进行透明化,其中其他PB贡献像素的复合图像部分不可见。你会看到父容器的背景而非图片。
你需要切换到单个PictureBox并编写代码。实现它的Paint事件处理程序并调用e.Graphics.DrawImage()来绘制图像。层叠现在已经不再是问题,绘制总是对其背景透明化。WPF也是采用这种方式来实现透明度的。