在运行时从WPF中的资源加载图像

Joh*_*ohn 6 wpf

我试图使用以下代码在WPF中运行时加载图像

_image = new Image();
BitmapImage src = new BitmapImage();
src.BeginInit();
src.UriSource = new Uri(@"pack://application:,,,/images/tagimages/placeholder.png", UriKind.Absolute);                
src.CacheOption = BitmapCacheOption.OnLoad;
src.EndInit();
_image.Source = src;
_image.Stretch = Stretch.None;
Run Code Online (Sandbox Code Playgroud)

在我的项目中,我有一个名为images的文件夹和一个名为tagimages的文件夹的子文件夹,其中包含placeholder.png.当我运行此代码时,我收到以下错误

"无法找到资源'images/tagimages/placeholder.png'"

我究竟做错了什么?

Joh*_*ohn 9

事实证明我应该使用

Uri(@"pack://application:,,,/<MyProject>;component/images/tagimages/placeholder.png", UriKind.Absolute);
Run Code Online (Sandbox Code Playgroud)

  • 我不明白这是如何改进旧的嵌入式资源,你可以将图像作为强类型属性抓取.什么是"打包应用程序tripple逗号MyProject半冒号相对URL声称其绝对"的东西?WPF毫无意义.难怪人们不得不经历数小时或数天的试错,只是为了让事情变得简单易行. (5认同)