这个URI有什么问题?

HEJ

我正在尝试使用Uri在wpf应用程序中加载(嵌入)图像,但我不断获得exception。

代码是:

new BitmapImage(new Uri("pack://application:,,,,/Icons/m.png")); 

(如果不清楚,我试图从Icons文件夹加载m.png文件,该文件夹已被标记为嵌入式资源)。

而例外是

 NotSupportetException (the URI prefix is not recognized) 

谁能告诉我uri应该是什么?

你可以看一下这篇博客文章 。 解决方案是注册一个自定义uri解析器,以便它识别pack协议:

 UriParser.Register( new GenericUriParser(GenericUriParserOptions.GenericAuthority), "pack", -1 ); 

你的字符串中必须有三个逗号而不是四个逗号:

 new BitmapImage(new Uri("pack://application:,,,/LibName;component/Icons/m.png")); 

LibName – 指向托管资源的程序集。