是否可以将两个重叠的PictureBox控件与透明图像一起使用?

有两个重叠的PictureBox控件 ,我试图让图片框的透明区域让下面的控件(在z顺序中)可见。

即使在尝试微软的建议之后 ,我也无法获得理想的结果。

这就是我目前所拥有的:

在此处输入图像描述

这就是我想要的:

在此处输入图像描述

所以我的问题是:

用两个相互重叠的PictureBox控件(或另一种方式)实现我想要的结果,让透明区域透过?

更新:

实际上我通过使用这个问题“ 使用C#WinForms透明图像 ”的答案解决了它。

试试这个

 private void Form1_Load(object sender, EventArgs e) { // Transparent background... pictureBoxOverlay.BackColor = Color.Transparent; // Change parent for overlay PictureBox... pictureBoxOverlay.Parent = pictureBoxMain; // Change overlay PictureBox position in new parent... // pictureBoxOverlay.Location = new Point(0, 0); } 

结果

在此处输入图像描述

llink

据我所知,控件的透明度取决于它的父控件(如你给出的链接中所述),这意味着为了获得你想要的效果,你需要将一个图片框嵌套到另一个图片框是不可能的,因为图片框不是容器。

但是,您可以使用自定义容器控件而不是父图像的图片框。 最基本的控制是一个小组。 只需设置控件的背景图像并将第二个图片框放入其中。

另一种解决方案是使用一个单独的图片框并手动管理渲染。

这是迄今为止最好的解决方案,因为另一种方法的伪模拟透明度是低效的。