从ImageList获取的图像看起来与直接从资源获取的图像不同

时间:2011-12-03 02:44:37

标签: c# .net winforms visual-studio visual-studio-2010

我有一个带有两个按钮的表单。

通过在VS的属性编辑器中设置png属性(使用Image按钮),我为其中一个分配了一个图像(16 x 16,32位深度Import...)。

我还有一个ImageList(16 x 16 ImageSizeDepth32Bit ColorDepth)我也从属性编辑器中为第一个按钮指定了相同的图像 - > Images然后Add。然后我用这种方式将这个图像分配给我的第二个按钮:

button2.Image = imageList.Images[0];

这就是图像的外观(实际尺寸的2倍):

enter image description here

使用ImageList可以让我的第二个按钮看起来像我的第一个按钮吗?我使用ImageList的原因是因为在检查性能时,根据VS的性能向导,从资源加载图像的代码行是一个热点。

我的应用程序将有一个控件列表,每个控件都有一堆带图像的按钮,所以我希望它们尽可能快地加载。所以我所拥有的是静态ImageList,每个控件都可以从中获取它们的图像。

1 个答案:

答案 0 :(得分:3)

这是因为您在Imagelist中添加的图像的ColorDepth高于您在ImageList属性中设置的ColorDepth。例如,如果您添加的图像是PNG格式,则应将ImageList的ColorDepth(在属性窗口中)设置为Depth32Bit,因为PNG格式使用32位颜色深度。