2

可能重复:
PictureBox 问题

我有一个TabPage托管一些自定义控件PictureBox。我在这里所做的是绘制一些 IC 封装,用户可以单击它们的引脚来获取一些信息。用户可以将多个此图片框添加到标签页并在标签页中移动它们。

我的问题是这个图片框是透明的,只有当它们不相互重叠时。在下图中,您可以看到两个添加到标签页的图片框。标签页的背景是蓝色的,事实上,不管它是什么颜色,图片框都会有一些对标签页透明的未绘制区域:

在此处输入图像描述

但是,一旦我将这些图片框中的任何一个移到另一个上方,它就不再透明了:

在此处输入图像描述

这是生成原始代码的代码,Image我将在上面绘制:

    //Setting up image area
    Image = new Bitmap(requiredImageWidth, requiredImageHeight, PixelFormat.Format32bppArgb);
    Image.MakeTransparent();

其余的是默认设置,我没有更改任何其他内容。您认为导致这种行为的原因是什么?

4

1 回答 1

6

从这篇文章中,这就是导致这种行为的原因:

WinForms 中的透明控件相对于它们的父控件是透明的,而不是相对于其他控件。WinForms 中的透明度更像是伪装,而不是真正的透明度。透明控件实际上并不能让您通过表单看到它背后的控件。它要求其父级在“透明”控件上绘制自己的背景。这就是为什么透明控件显示其背后的窗体,但覆盖任何其他控件的原因。

您的问题有一个公认的答案(A PictureBox Problem)

于 2012-08-27T09:15:59.700 回答