我正在使用
ImageList for TreeView和ListView.我首先将图像质量设置为32位,然后添加半透明图像.质量看起来不错,但在编写,编译和执行应用程序几分钟后,质量看起来很糟糕.
看截图:
使用过的属性
ColorDepth: Depth32Bit ImageSize: 16; 16 TransparentColor: Transparent
像素背后有黑色像素,半透明但不完全透明.
解决方法
当图像存储为ImageStream(VS Designer的默认行为)时,看起来alpha通道数据会丢失.
因此,如果您可以停止使用Designer在ImageList中设置图像,则可以使用半透明图像,最高可达ColorDepth.Depth32Bit.
它非常不方便但它有效.
因此,如果您可以停止使用Designer在ImageList中设置图像,则可以使用半透明图像,最高可达ColorDepth.Depth32Bit.
它非常不方便但它有效.
因此,您可以将图像放到Resources.resx文件中,并将它们添加到代码中的适当位置.例如,在UserControl / Form的构造函数中,在通过以下代码调用InitializeComponent()之后:
_imageList.Images.Add(Resources.Image32); _imageList.Images.SetKeyName(0,"Image32"); _myButton.Image = 0;