Tag: pack uri

我怎样才能从资源获取BitmapImage?

我的程序集包含BuildAction == Resource的图像。 我想从这个embedded式资源获取一个BitmapImage。 我可以像这样从文件加载一个BitmapImage: var bitmap = new BitmapImage(new Uri(path)); 但是,如何创build一个将引用embedded式资源图像的Uri? 当我尝试创build“ pack URI ”(例如pack://application:,,,/MyImage.png或pack://application:,,,/MyAssembly;component/MyImage.png )时,会引发exception: System.UriFormatException“无效的URI:因为存在冒号(':')而期望端口,但是端口不能被分析。 我发现修复,在这篇博客文章的UriFormatException 但是,应用该修复程序,我仍然收到exception,尝试从pack URI中加载BitmapImage。 当使用pack://application:,,,/Image.png格式时,我得到一个NullReferenceException,并且在使用pack://application:,,,/AssemblyName;component/Image.png格式时,我得到一个NotSupportedException “Uri前缀不被识别”。 总结我的问题是,我正在尝试在任何WPF控件/窗口/ etc被实例化之前在一个进程中使用“pack URI”,所以“pack”URIscheme还没有注册(其他WPF所需的东西也必须不要太设置,因为手动注册包scheme本身并不能解决问题)。 解决scheme是等到实例化我的WPF usercontrol使用包URI。