PictureBox与透明背景

时间:2012-08-27 08:55:34

标签: c# winforms transparency picturebox

  

可能重复:
  A PictureBox Problem

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

我的问题是这个图片盒是透明的,只有当它们没有相互叠加时。在下图中,您会看到其中两个图片框已添加到标签页。标签页有一个蓝色的背景,事实上,无论它有什么颜色,图片框都会让标签页面的透明区域透明:

enter image description here

但是,只要我将任何一个图片框移到另一个图片框之外,它就不会再透明了:

enter image description here

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

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

其余的是默认设置我没有改变其他任何东西。您认为导致此行为的原因是什么?

1 个答案:

答案 0 :(得分:6)

从这个article开始,这就是造成这种行为的原因:

  

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

您的问题here (A PictureBox Problem)

已接受答案