是否有可能有透明图像的两个重叠的PictureBox控件? [重复](Is it possibl

2019-07-30 07:53发布

这个问题已经在这里有一个答案:

  • 透明图像用C#的WinForms 6个回答

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

即使在试图Microsoft建议什么 ,我不能得到期望的结果。

这是我目前有:

这就是我想要的东西:

所以我的问题是:

任何方式实现有两个我想要的结果PictureBox相互重叠而让透明区域彪炳控制(或另一种方式)?

更新:

事实上,我用它来解决这个答案给的SO问题“ 与C#的WinForms透明图像 ”。

Answer 1:

试试这个

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



Answer 2:

据我所知,一个控制的透明度取决于它的父控件(如你给的链接说明),这意味着,为了有你正在寻找的效果,你需要有嵌套到一个图片框另一图片框,其不可能给出一个图片框不是容器。

但是,您可以使用自定义容器控件,而不是父图像的图片框。 最基本的控制将是一个面板。 只需设置控件的背景图像,并把第二个图片框在里面。

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

这是迄今为止作为其他方法的伪模拟透明度最好的解决办法是安静的低效。



文章来源: Is it possible to have two overlapping PictureBox controls with transparent images? [duplicate]