Windows 按钮忽略全透明图像的 alpha 通道

Windows button ignores alpha channel for fully transparent image

到目前为止,我可以通过手动操作像素来设置 RGB 和 alpha。我测试过,即使是半透明(非预乘)alpha 值看起来也不错。

据我所知,一切正常,除非图像中的所有像素都是透明的。在这种情况下,按钮显然会忽略 alpha 值,只是显示一个矩形,每个像素都具有完全不透明的相应颜色。

found a hint Windows - 至少在某些情况下 - 实际上似乎将像素的 alpha 值全为 0 的图像解释为完全不透明的图像:

When the window manager sees a 32bpp bitmap, it looks at the alpha channel. If it's all zeroes, then it assumes that the image is in 0RGB format; otherwise it assumes it is in ARGB format

是否在某处记录了此行为?

Is this behaviour documented somewhere?

是的!在林峰的post! :) 通常都是这样,不是吗?

如果您查看页面底部 here you will find a comments box. If you raise your concerns there then MS will most likely fix their documentation. See here 以了解他们认为问题严重到需要解决时通常会遵循的流程示例。