Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从ImageList拍摄的图像与直接从资源中拍摄的图像看起来不同_C#_.net_Winforms_Visual Studio_Visual Studio 2010 - Fatal编程技术网

C# 从ImageList拍摄的图像与直接从资源中拍摄的图像看起来不同

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倍): 通过使用图像列

我有一张有两个按钮的表格

通过在VS的属性编辑器中设置
图像
属性(使用
导入…
按钮),我为其中一个指定了一个图像(16 x 16,32位深度
png

我还有一个
ImageList
(16 x 16
ImageSize
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位
颜色深度
)…”