3

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

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

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

<Image Source="foo.png" />

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

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

那么,我的 Windows 7 和 Windows 8 安装之间发生了什么变化会影响这一点?此外,我可以采取什么方法让我的应用程序在 Windows 7 和 8 上成功构建和运行?

4

1 回答 1

1

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

  1. 如果这适用于两个版本,请包括“资源”前缀。
  2. 使用 pack Uri 获得明确的信息,而不是使用相对 Uris 并根据系统来转换它们(更多信息在这里)。
  3. 强制应用程序在特定的运行时版本下运行(更多信息在这里)。
于 2012-10-09T20:22:56.477 回答