我试图从包含两个图标的.ico文件在C#中的TreeView中设置图像:32x32版本和16x16版本。图像设置,但。NET选择32x32版本,并缩小(看起来很可怕),而不是选择现成的16x16图像。C#:使用.ico文件与多个图像
相关的代码:
ilTree.Images.Add(Properties.Resources.group);
ilTree.Images.Add(Properties.Resources.single);
ilTree.Images.Add(Properties.Resources.db);
treeStored.ImageList = ilTree;
我要去哪里错了?
答:
有两件事情你必须做的就是这个工作。第一,如下所述,是手动指定图像列表的正确大小。第二个是你也可能必须指定颜色深度。 MSDN指出:
在.NET Framework 1.1或更高版本中,缺省值为Depth8Bit。
...但是,这并没有阻止ImageList从我的8位图标中去除颜色。经过仔细检查,我的图标(有三个)是:4位,4位,8位。两个4位图标共享调色板,但8位有不同的调色板。图标之间总共有257种颜色。尽管只有轻微的溢出,.Net将其击倒仅仅是颜色。
这是ImageList的默认大小 - 手动设置它会(并且,当我添加它时)没有效果。 – Thanatos 2009-06-08 20:58:14
嗯,这以前为我工作。你在添加图片之前还是之后设置了它?没有意识到这是默认的。 – rein 2009-06-08 21:04:46