我有一个带有两个按钮的表单。
通过在VS的属性编辑器中设置png
属性(使用Image
按钮),我为其中一个分配了一个图像(16 x 16,32位深度Import...
)。
我还有一个ImageList
(16 x 16 ImageSize
和Depth32Bit
ColorDepth
)我也从属性编辑器中为第一个按钮指定了相同的图像 - > Images
然后Add
。然后我用这种方式将这个图像分配给我的第二个按钮:
button2.Image = imageList.Images[0];
这就是图像的外观(实际尺寸的2倍):
使用ImageList
可以让我的第二个按钮看起来像我的第一个按钮吗?我使用ImageList
的原因是因为在检查性能时,根据VS的性能向导,从资源加载图像的代码行是一个热点。
我的应用程序将有一个控件列表,每个控件都有一堆带图像的按钮,所以我希望它们尽可能快地加载。所以我所拥有的是静态ImageList
,每个控件都可以从中获取它们的图像。
答案 0 :(得分:3)
这是因为您在Imagelist中添加的图像的ColorDepth高于您在ImageList属性中设置的ColorDepth。例如,如果您添加的图像是PNG格式,则应将ImageList的ColorDepth(在属性窗口中)设置为Depth32Bit,因为PNG格式使用32位颜色深度。