当前位置:  开发笔记 > 开发工具 > 正文

ImageList透明度错误的解决方法?

如何解决《ImageList透明度错误的解决方法?》经验,为你挑选了1个好方法。

如果将PNG图像添加到ImageList控件并在Windows窗体(.Net 2.)应用程序中将该ImageList与ListView或TreeView一起使用,则ListView中显示的图标周围会出现蓝色"光晕".

例如:

替代文字http://deeperdesign.wordpress.com/files/2009/03/blue-halo.png

有没有人知道一个工作,允许你添加带有Alpha通道的32位PNG到ImageList并保留透明像素,避免光环效应/错误?

谢谢.



1> snarf..:

我不认为这是一个错误.您应该将ImageList颜色深度设置为32位,并且您需要使用视觉样式.

如果应用程序启用了视觉样式,则WinForms使用版本6.0的Windows常用控件,它支持Alpha透明度.否则,它将使用不支持alpha透明度的先前版本,并错误地呈现带有蓝色光环的ARGB图像.

如果需要解决方法,可以尝试创建相同大小的新位图,使用ListView的BackColor填充它们,在位图上创建Graphics对象,并将ARGB图像绘制到位图上.然后,您可以将这些预先放大的位图插入ImageList.但是,如果执行此操作,则ListView中的图标上的选择看起来会很有趣.

另一种解决方法是直接访问位图数据(使用LockBits())并手动混合任何半透明像素,这将使图像正确呈现并且看起来几乎与选择时的方式相同.

推荐阅读
wurtjq
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有