如何在棱镜中使用.ico作为IconSource?

时间:2011-11-08 22:30:55

标签: c# wpf binding mvvm icons

我正在为ViewModel中的一个IconSource属性绑定指定一个引用.ico文件的路径,但这个异常会在Prism的RaisePropertyChanged()调用中抛出:

  

参数'picture'必须是可以用作Icon的图片。

据我所知,.ico是一种图片文件。同样在ViewModel的构造函数中,我默认分配另一个.ico文件并且加载正常,它只在我得到此异常的第二次调用中。

1 个答案:

答案 0 :(得分:1)

你检查过图标的图片大小了吗?它还应该能够支持高DPI显示,并且必须是PNG格式。

在此concise short tutorial中,支持的尺寸和颜色为:

256x256 - RGB / A 64x64 - RGB / A 48x48 - RGB / A 32x32 - RGB / A 24x24 - RGB / A 16x16 - RGB / A 256x256 - 256c 64x64 - 256c 48x48 - 256c 32x32 - 256c 24x24 - 256c 16x16 - 256c 256x256 - 16c 64x64 - 16c 48x48 - 16c 32x32 - 16c 24x24 - 16c 16x16 - 16c

256c表示256种颜色,16c表示16种颜色,RGB / A表示24位颜色,8位alpha。

上述教程中的另一个注意事项是:

  

PNG压缩嵌入在256x256图像的ICO文件中   只要。无法读取和编辑PNG压缩的Windows Vista™图标   使用仅适用于Windows®XP的图标编辑器,也无法打开它们   使用PNG图像编辑器。

但不幸的是,WPF图标更倾向于Vista及以上版本,包括Windows 7.我建议您遵循Windows Vista和Windows 7的图标的通用指南,而不是使用Windows XP向后推进。