有没有办法在C#应用程序中正确显示带有Alpha channel (例如PNG)的图像?感谢您的任何建议。

更新:

好的,我的问题有点不准确。我想获得Alpha channel 的真实透明度-不填充父级的背景色。在下面的图像中,我们可以看到支持透明性,但是按钮下方位于图像下方的部分是不可见的。是否可以使图像的Alpha channel 具有真实的透明度?

c# - 在C#中显示带有Alpha channel 的PNG-LMLPHP

最佳答案

如果那是winforms,则不会。
Winforms中的“透明性”不是真正的透明性。

您可以做的是创建一个alpha透明窗体,该窗体绘制PNG并将其定位在正确的位置并绑定(bind)移动等。

http://www.codeproject.com/KB/GDI-plus/perpxalpha_sharp.aspx

PerPixelAlphaForm transparentImageForm = new PerPixelAlphaForm();
transparentImageForm.SetBitmap(<IMAGE GOES HERE>,<OPACITY GOES HERE>);

//opacity是用来绘制图像的不透明度,值255 =所有透明部分都是alpha/透明的,与原始PNG一样多。

编辑:或转到WPF。

关于c# - 在C#中显示带有Alpha channel 的PNG,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3109604/

10-17 01:33