【发布时间】:2013-11-24 19:56:57
【问题描述】:
我试图在一个 winform 中叠加两个透明图像,但它一直在顶部透明图像后面渲染表单的背景图像,而不是第二个图像...
我的基本设置是我有两个面板,每个面板中都有一个图片框。图片框中的每个图像都有一些透明区域。我已将面板的 BackColor 设置为 color.transparent。
当我让一个面板覆盖另一个面板时,我看到表单的背景色穿过而不是底层图像。
我是否缺少可以设置的属性?
【问题讨论】:
-
尝试不使用面板。简单地将一个面板堆叠在另一个面板上可能不起作用,因为 Panel2 的父级仍然是表单(因此,它背后的东西),而不是底部面板。
-
最简单的方法就是使用one PictureBox。分配 BackgroundImage 和 Image 或使用其 Paint 事件通过 e.Graphics.DrawImage() 绘制第二个图像
-
在仍然使用 PicturBox 时,最接近的方法是修改其 Region() 属性,使其不再是矩形。