代码之家  ›  专栏  ›  技术社区  ›  SimSimY

PictureBox中的透明PNG

  •  1
  • SimSimY  · 技术社区  · 16 年前

    我正在尝试制作一个简单的应用程序,通过将模板拖动到图片上,可以将图像与透明的PNG模板进行比较。为此,我需要一种方法来创建一个PictureBox,它将包含PNG图像,并且在PNG是透明的地方是透明的。 一切正常,但透明度部分:当我将PNG图像加载到PictureBox(背景色设置为透明)时,它显示包含面板的背景色,而不是它悬停的图像。

    我搜索了一下,但只找到了一种使PictureBox完全透明的方法。

    2 回复  |  直到 16 年前
        1
  •  2
  •   SLaks    15 年前

    很难使控件部分透明。

    你应该做的是处理较低的 PictureBox Paint 事件(不需要透明的事件),并使用 e.Graphics.DrawImage(image, x, y)

    编辑 :回应你的评论,打电话给 Invalidate 中的方法 MouseMove 事件但是,您会注意到一些闪烁。要解决闪烁问题,请创建一个继承 ,并致电 SetStyle(ControlStyles.DoubleBuffered, true) 在构造函数中。

        2
  •  0
  •   CSharper    13 年前

            pictureBoxToBeHovered.Controls.Add(pictureBoxOnTop);
            pictureBoxOnTop.BackColor = Color.Transparent;
            pictureBoxOnTop .Location = new Point(0,0) ;