我使用ImageList
为TreeView
和ListView
。 我首先设置图像质量设置为32位,然后加入其是半透明的图像。 质量看起来不错,但一两分钟的编码,编译和执行申请后,质量很糟糕。
见截图:
使用的属性
ColorDepth: Depth32Bit
ImageSize: 16; 16
TransparentColor: Transparent
有哪些是半透明的,但不是完全透明的像素背后的黑色像素。
重新添加的所有图像恢复原来的质量,但几分钟后,它看起来像在截图的右侧。
它看起来像时的图像被存储为alpha通道数据丢失ImageStream
(VS设计器的默认行为)。 所以,如果你确定以停止使用设计器来设置图像ImageList
,您可以使用半透明图像可达ColorDepth.Depth32Bit
。 这是非常不方便的,但它的工作原理。
所以,你可以把你的图像Resources.resx
文件,并在其添加到代码中适当的位置。 例如在你构造UserControl
/ Form
,调用后InitializeComponent()
通过这样的代码:
_imageList.Images.Add(Resources.Image32);
_imageList.Images.SetKeyName(0, "Image32");
_myButton.Image = 0;
(此信息是在注释中标明响应提供答案,我已经添加了这个作为答案所以这将是难以错过另一个可用的选项)