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