Csharp/C#教程:C#:使用带有多个图像的.ico文件分享


C#:使用带有多个图像的.ico文件

我正在尝试使用包含两个图标的.ico文件在C#中的TreeView中设置图像:32×32版本和16×16版本。 图像正在设置,但.Net正在选择32×32版本,并将其缩小(看起来很糟糕),而不是选择现成的16×16图像。

相关代码:

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位图标中删除颜色。 经过仔细检查,我的图标(有三个)是:4bit,4bit,8bit。 两个4位图标共享调色板,但8位有不同的调色板。 总的来说,图标之间有257种颜色。 尽管只有轻微的溢出,.Net将其降低到仅仅20种颜色。

您需要创建一个新的Icon对象。 接受原始Icon对象和大小的构造函数有一个重载。 我不知道新的Icon对象是否会共享相同的HIcon,但它会正确绘制。 为了安全起见,我建议确保两者都处理完毕。

将ImageList的ImageSize属性设置为新的大小(16,16)

上述就是C#学习教程:C#:使用带有多个图像的.ico文件分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/958155.html

(0)
上一篇 2021年11月22日
下一篇 2021年11月22日

精彩推荐