8

我正在使用ImageListforTreeViewListView。我首先将图像质量设置为 32 位,然后添加半透明图像。质量看起来不错,但经过​​几分钟的编码、编译和执行应用程序,质量看起来很糟糕。

看截图: 在此处输入图像描述

使用的属性

ColorDepth: Depth32Bit
ImageSize: 16; 16
TransparentColor: Transparent

在半透明但不完全透明的像素后面有黑色像素。

重新添加所有图像可恢复原始质量,但几分钟后,它看起来像在屏幕截图的右侧。

4

1 回答 1

9

ImageStream当图像存储为(VS Designer 的默认行为)时,看起来 alpha 通道数据会丢失。因此,如果您可以停止使用 Designer 设置图像ImageList,则可以使用半透明图像至ColorDepth.Depth32Bit. 这是非常不方便的,但它的工作原理。

因此,您可以将图像放入Resources.resx文件中,并将它们添加到代码中的适当位置。例如在 you UserControl/的构造函数中,通过如下代码Form调用后:InitializeComponent()

  _imageList.Images.Add(Resources.Image32);
  _imageList.Images.SetKeyName(0, "Image32");
  _myButton.Image = 0;

(此信息可在回复标记答案的评论中找到,我已将此添加为答案,因此很难错过另一个可用选项)

于 2014-07-07T14:06:50.517 回答