我正在尝试使用wpf样式uri在代码中初始化BitmapImage实例。
BitmapImage icon = new BitmapImage(new Uri("pack://application:,,,/MyAssembly;component/Icons/someIcon.ico", UriKind.Absolute));
但问题是new Uri
抛出System.UriFormatException
无效的URI:指定的端口无效。
我做错了什么?
答案 0 :(得分:4)
这里的问题是您尝试在不是普通WPF应用程序的应用程序中创建Uri
。 Uri
有许多内置的“方案”,已在UriParser
注册。
UriParser类使您可以为新的URI方案创建解析器。您可以完整地编写这些解析器,也可以从众所周知的方案(HTTP,FTP和其他基于网络协议的方案)派生解析器。
WPF在创建System.Windows.Application
时为“pack”方案添加解析器,这是WPF应用程序的正常入口点。在您的情况下,您只需在合成根中添加对此的调用:
new System.Windows.Application();
答案 1 :(得分:0)
我们可以使用以下代码
UriParser.Register(new GenericUriParser(GenericUriParserOptions.GenericAuthority), "pack", -1);
在尝试创建uri之前。