Uri为WPF样式uri抛出无效端口

时间:2016-08-03 15:30:44

标签: c# wpf uri

我正在尝试使用wpf样式uri在代码中初始化BitmapImage实例。

BitmapImage icon = new BitmapImage(new Uri("pack://application:,,,/MyAssembly;component/Icons/someIcon.ico", UriKind.Absolute));

但问题是new Uri抛出System.UriFormatException

  

无效的URI:指定的端口无效。

我做错了什么?

2 个答案:

答案 0 :(得分:4)

这里的问题是您尝试在不是普通WPF应用程序的应用程序中创建UriUri有许多内置的“方案”,已在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之前。