C# 如何在C中实现.png alpha透明图片框#

C# 如何在C中实现.png alpha透明图片框#,c#,png,transparency,background-image,C#,Png,Transparency,Background Image,我有一个背景图像。我想在背景图像上覆盖一个图片框。此重叠图像为带圆角的正方形 正方形是一个.png文件。当它显示在窗体上时,它会显示正方形,但背景与窗体相同 我知道当你将背景颜色设置为透明时,它看起来就像表单背景,但是我如何让picturebox显示下面的背景图像呢 正方形也会在背景图像上移动,移动时需要保持透明度 我知道这是一个非常开放的问题,但确实会有帮助 如果您试图避免某种情况,使窗体本身是透明的,但却呈现背景图片,使窗体看起来像是背景图片,那么您只需使用TransparencyKey属性

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

正方形是一个.png文件。当它显示在窗体上时,它会显示正方形,但背景与窗体相同

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

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

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


如果您试图避免某种情况,使窗体本身是透明的,但却呈现背景图片,使窗体看起来像是背景图片,那么您只需使用TransparencyKey属性即可。

我怀疑使用picturebox无法获得所需的结果。正如您已经知道的,picturebox不是一个“真正”的透明设备。它实际上是在有透明度的地方绘制父对象的颜色。为了使用GDI+在页面上移动的东西的真实透明外观和感觉,您需要使用Yorye在评论中提到的OnPaint方法进行自定义绘制,并使用CreateGraphics()使用表单的图形对象绘制位图/图像功能。

总体思路是让用户控制并覆盖OnPaint方法,并使用图形仅绘制所需内容。这是一个有人为此做的项目。