Windows 7和8之间的图像资源命名有所不同吗?

时间:2012-09-13 23:23:40

标签: wpf visual-studio-2010 xaml windows-7 windows-8

我有一个使用png图像作为资源的WPF应用程序。这些图像将添加到我的csproj“作为链接”在名为“resources”的文件夹中,并具有以下属性

  • 构建操作:资源
  • 复制到输出目录:不要复制

在我的xaml文件中,它们的引用如下:

<Image Source="foo.png" />

这足以在Windows 7上使用Visual Studio 2010构建和运行。安装Windows 8后,解决方案仍然可以成功构建,但没有一个图像出现在正在运行的应用程序中。如果我将每个xaml图片引用更改为此图片执行 apear:

<Image Source="resources/foo.png" />

那么,我的Windows 7和Windows 8安装之间发生了哪些变化?另外,我可以采用哪种方法使我的应用程序能够在Windows 7和8上成功构建和运行?

1 个答案:

答案 0 :(得分:1)

由于您提到该文件是作为链接添加到名为“resources”的文件夹中的,因此我不确定它如何在没有合格路径之前工作。从技术上讲,每个相对的Uri都是一个“pack”uri,它与试图加载它的页面相关。我怀疑框架版本之间的相对规则发生了变化,但我认为你有三个选择:

  1. 如果适用于两个版本,请包含“resources”前缀。
  2. 明确使用包Uri而不是使用相对Uris并根据系统进行转换(更多info here)。
  3. 强制应用程序在特定运行时版本(更多info here)下运行。