相对包URI不起作用

时间:2014-08-09 08:11:04

标签: c# wpf

我的项目中的Img文件夹中有几个图像,所有这些图像都设置为Build Action:Resource。

我曾经使用相对URI来引用所有这些图像,如下所示:

new Uri("Img/image.png", UriKind.Relative);

我不确定最新消息,但它突然停止工作并且找不到图像。 我现在必须像这样推荐他们:

new Uri("pack://application:,,,/MyApp;component/Img/image.png");

为了让他们工作。我无法弄清楚为什么相对路径突然停止工作。 (相对路径仍然在XAML中工作)

1 个答案:

答案 0 :(得分:0)

具有构建操作Resource的图像文件必须由包URI引用。

来自MSDN

  

资源文件被配置为MSBuild资源项目   编译成程序集。 WPF支持包URI的构造   可用于标识已编译的资源文件   进入本地程序集或编译成一个程序集   从本地程序集引用。

WPF会自动将前缀pack://application:,,,(或pack://application:,,,/)添加到XAML中的图像URI。当你写

<Image Source="/Img/image.png"/>

WPF会自动将其转换为本地程序集包URI

"pack://application:,,,/Img/image.png".