我正在尝试以编程方式创建一个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 = logo };
如何测试我写的Uri是否真的存在?
答案 0 :(得分:0)
默认情况下,位图在屏幕上显示之前不会加载(例如,将Image
控件添加到应用程序中的某个可见容器中)。
但是,您可以通过设置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
。而是使用适当的Resource File Pack URI之类的
logo.UriSource = new Uri("pack://application:,,,/blah;component/Themes/buh.png");