【问题标题】:How do you get true .png alpha transparancy picture boxes in C#如何在 C# 中获得真正的 .png alpha 透明度图片框
【发布时间】:2012-04-30 12:09:55
【问题描述】:

我有一张背景图片。我想在背景图像上覆盖一个图片框。此叠加图像是一个带圆角的正方形。

方块是一个 .png 文件。当它显示在表单上时,它显示为正方形,但与表单具有相同的背景。

我知道当您将背景颜色设置为透明时,它看起来像表单背景,但是如何让图片框显示下面的背景图像?

方块也会在背景图像上移动,它需要在移动时保持透明度。

我知道这是一个非常开放的问题,但确实会有所帮助。

谢谢

【问题讨论】:

  • 总体思路是制作一个用户控件并覆盖 OnPaint 方法,并使用 Graphics 仅绘制需要的内容。这是有人为此做的一些项目。 codeproject.com/Articles/26878/…

标签: c# png transparency background-image


【解决方案1】:

我偷偷地怀疑,使用图片框的预期结果是不可能的。正如您已经知道的那样,图片框不是“真正的”透明度。它从字面上描绘了它所在的有透明度的父级的颜色。对于使用 GDI+ 在页面上移动的东西的真正透明的外观和感觉,您需要使用 Yorye 在他的评论中提到的 OnPaint 方法进行自定义绘画,并使用 CreateGraphics() 使用表单的 Graphics 对象绘制位图/图像函数。

【讨论】:

    【解决方案2】:

    如果您试图让表单本身透明但呈现背景图片以使表单看起来像是背景图片,您应该简单地使用 TransparencyKey 属性。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-10
      • 2012-05-03
      • 1970-01-01
      • 2013-06-08
      • 2012-07-25
      • 2010-12-30
      相关资源
      最近更新 更多