可能重复:
A PictureBox Problem
我有TabPage
,其中包含一些自定义PictureBox
控件。我在这里做的是绘制一些IC封装,用户可以点击它们的针脚来获取一些信息。用户可以将多个此图片框添加到标签页,并在标签页中移动它们。
我的问题是这个图片盒是透明的,只有当它们没有相互叠加时。在下图中,您会看到其中两个图片框已添加到标签页。标签页有一个蓝色的背景,事实上,无论它有什么颜色,图片框都会让标签页面的透明区域透明:
但是,只要我将任何一个图片框移到另一个图片框之外,它就不会再透明了:
这是生成我将在其上绘制的原始Image
的代码:
//Setting up image area
Image = new Bitmap(requiredImageWidth, requiredImageHeight, PixelFormat.Format32bppArgb);
Image.MakeTransparent();
其余的是默认设置我没有改变其他任何东西。您认为导致此行为的原因是什么?
答案 0 :(得分:6)
从这个article开始,这就是造成这种行为的原因:
已接受答案WinForms中的透明控件相对于父级是透明的,而不是其他控件。 WinForms中的透明度更像伪装而非真正的透明度。透明控件实际上不会让您通过表单看到它背后的控件。 它要求其父级在“透明”控件上绘制自己的背景。这就是透明控件显示其背后的形式,但掩盖任何其他控件的原因。