有两个重叠的PictureBox
controls,我试图让图片框的透明区域让下面的控件(在z顺序中)可见。
即使在trying what Microsoft suggests之后,我也无法获得理想的结果。
这就是我目前所拥有的:
这就是我想要的:
所以我的问题是:
使用两个PictureBox
控件(或另一种方式)实现我想要的结果的任何方式相互重叠并让透明区域闪耀?
更新
实际上,我使用this answer解决了SO问题“Transparent images with C# WinForms”。
答案 0 :(得分:17)
试试这个
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);
}
结果
答案 1 :(得分:2)
据我所知,控件的透明度取决于它的父控件(如你给出的链接中所述),这意味着为了获得你想要的效果,你需要有一张图片盒子嵌套在另一个图片盒中,鉴于图片盒不是容器,这是不可能的。
但是,您可以使用自定义容器控件而不是父图像的图片框。 最基本的控制是一个小组。只需设置控件的背景图像,然后将第二个图片框放入其中。
另一种解决方案是使用一个图片框并手动管理渲染。
这是迄今为止最好的解决方案,因为另一种方法的伪模拟透明度效率很低。