C# 从ImageList拍摄的图像与直接从资源中拍摄的图像看起来不同
我有一张有两个按钮的表格 通过在VS的属性编辑器中设置C# 从ImageList拍摄的图像与直接从资源中拍摄的图像看起来不同,c#,.net,winforms,visual-studio,visual-studio-2010,C#,.net,Winforms,Visual Studio,Visual Studio 2010,我有一张有两个按钮的表格 通过在VS的属性编辑器中设置图像属性(使用导入…按钮),我为其中一个指定了一个图像(16 x 16,32位深度png) 我还有一个ImageList(16 x 16ImageSize和Depth32BitColorDepth),我给它分配了与属性编辑器中的第一个按钮相同的图像->图像,然后添加。然后我将此图像指定给我的第二个按钮,如下所示: button2.Image = imageList.Images[0]; 这就是图像的外观(实际大小的2倍): 通过使用图像列
图像
属性(使用导入…
按钮),我为其中一个指定了一个图像(16 x 16,32位深度png
)
我还有一个ImageList
(16 x 16ImageSize
和Depth32Bit
ColorDepth
),我给它分配了与属性编辑器中的第一个按钮相同的图像->图像
,然后添加。然后我将此图像指定给我的第二个按钮,如下所示:
button2.Image = imageList.Images[0];
这就是图像的外观(实际大小的2倍):
通过使用图像列表
,是否可以使我的第二个按钮看起来像我的第一个按钮?我之所以使用图像列表
,是因为在检查性能时,根据VS的性能向导,从资源加载图像的代码行是一个热点
我的应用程序将有一个控件列表,每个控件都有一组带有图像的按钮,因此我希望它们能够尽快加载。因此,我拥有的是一个静态的ImageList
,每个控件都从中获取图像。这是因为您在ImageList中添加的图像具有比您在ImageList属性中设置的颜色深度更高的颜色深度。例如,如果添加的图像为PNG格式,则应将ImageList(在属性窗口中)的ColorDepth设置为Depth32位,因为PNG格式使用32位颜色深度。这不是16x16图像,至少是32x32。很可能文档中的ImageList.ColorDepth也是错误的,这可以解释颜色丢失的原因。@HansPassant:当我双击->属性->详细信息时,Windows就是这么告诉我的。请注意,我的图像是实际大小的2倍。你知道哪里出了问题吗?我也有同样的问题。@24这是很久以前的事了,但我认为当我停止用Photoshop编辑图像时,这种情况就不再发生了。我从来没有弄清楚发生这种情况的确切原因。我的ImageList
设置为32位颜色深度。“我还有一个图像列表
(16 x 16图像大小
和深度32位
颜色深度
)…”