我有一个TSpeedButton和一个包含各种图像的TImageList。其中一个图像具有alpha通道,当绘制到UI的某些部分时,它看起来非常好...但是当该图像绘制在TSpeedButton上时,它不会考虑alpha通道。
查看TButtonGlyph.DrawButtonGlyph中相关的代码,发现传递给Transparent参数的是true,但在if FThemesEnabled的代码路径中根本没有考虑Transparent;它只在else部分中被引用。由于此程序启用了主题,这是否意味着无法向TSpeedButton绘制alpha混合的图像?
有没有办法解决这个问题?
编辑:仔细查看后,似乎确实考虑了透明度。完全透明的像素根本不会被绘制,这是正确的行为。但是边缘周围的抗锯齿(部分透明)被绘制为完全不透明。
查看TButtonGlyph.DrawButtonGlyph中相关的代码,发现传递给Transparent参数的是true,但在if FThemesEnabled的代码路径中根本没有考虑Transparent;它只在else部分中被引用。由于此程序启用了主题,这是否意味着无法向TSpeedButton绘制alpha混合的图像?
有没有办法解决这个问题?
编辑:仔细查看后,似乎确实考虑了透明度。完全透明的像素根本不会被绘制,这是正确的行为。但是边缘周围的抗锯齿(部分透明)被绘制为完全不透明。
ImageList.GetBitmap(index, SpeedButton.Glyph);
设置的,但是知道这一点真的会有任何区别吗? - Mason Wheeler