C# 将BitmapImage.UriSource设置为不存在的Uri不会';t上升误差
我试图以编程方式创建一个WPF映像,但不管我在Uri构造函数中输入了什么字符串,它都不会引发任何错误。。。即使找不到该文件:C# 将BitmapImage.UriSource设置为不存在的Uri不会';t上升误差,c#,wpf,uri,bitmapimage,C#,Wpf,Uri,Bitmapimage,我试图以编程方式创建一个WPF映像,但不管我在Uri构造函数中输入了什么字符串,它都不会引发任何错误。。。即使找不到该文件: BitmapImage logo = new BitmapImage(); logo.BeginInit(); logo.UriSource = new Uri("/blah;component/Themes/buh.png", UriKind.Relative); logo.EndInit(); Image im = new Image() { Source = log
BitmapImage logo = new BitmapImage();
logo.BeginInit();
logo.UriSource = new Uri("/blah;component/Themes/buh.png", UriKind.Relative);
logo.EndInit();
Image im = new Image() { Source = logo };
如何测试我编写的Uri是否真的存在?默认情况下,位图只有在屏幕上显示时才会加载(例如,通过将
图像
控件添加到应用程序中的某个可见容器中)
但是,您可以通过设置BitmapCacheOption.OnLoad
强制立即加载。现在EndInit()
将引发异常
var logo = new BitmapImage();
logo.BeginInit();
logo.UriSource = new Uri("/blah;component/Themes/buh.png", UriKind.Relative);
logo.CacheOption = BitmapCacheOption.OnLoad;
logo.EndInit();
也就是说,在检索图像资源时不应该使用
UriKind.Relative
。相反,使用一个合适的方法
logo.UriSource = new Uri("pack://application:,,,/blah;component/Themes/buh.png");