【问题标题】:Best way to share assets like images between projects在项目之间共享图像等资产的最佳方式
【发布时间】:2014-07-28 15:09:40
【问题描述】:

我想在多个 WinRT 项目之间共享一些资产,例如图标

使用 WPF,这很容易(几乎):

  • 为资产创建一个库项目
  • 将资产标记为资源以将它们嵌入到生成的程序集中
  • 从其他项目中引用资产项目
  • 使用有点奇怪的“pack”URI 格式引用 XAML 代码中的图标。

与 Windows 运行时共享它们的最佳方式是什么?

有没有这样的资源嵌入共享能力,或者其他解决方案?

如果没有,我想我可以使用“复制为链接”将它们添加到每个项目中,但我希望有一个干净的方法。

编辑:我已经开始天真地做这件事,就像在 WPF 项目中一样:

  • 我创建了一个新的库项目“Assets”,并将其中的图片添加为“Content”
  • 我从我的主项目中引用了这个项目

但我无法使用新的 URI 格式引用图像:

<Image Source="ms-resource://Assets/Files/Mushroom.png"></Image>

【问题讨论】:

  • @sebagomez 感谢您的回答。但是 AFAIK PCL 是 WinRT 的一个子集,是与 .Net 等其他平台的最低公分母,因此它可能支持的可能少于纯 WinRT 程序集。此外,在其中嵌入图标然后从其他项目中引用它们的最佳方式仍然是一个问题......
  • 我明白...我的意思是,如果您可以将您的图标(资源)嵌入 PCL 组件中,您可能会受益于将它们放在一个地方...只是一个想法

标签: c# xaml windows-runtime winrt-xaml


【解决方案1】:

所以最后我得到了正确的结果。

这是完整的过程:

  • 创建您的库项目,添加您的图片并将其构建操作设置为“Content
  • 从您的主项目中引用该库

要引用图像本身,您必须:

  • 使用 "ms-appx" 架构,而不是您可能在 Google 上找到的“ms-resource
  • ///而不是//

    指定绝对路径

最重要的是不要相信 Visual Studio 设计者

  • 如果你做对了,它可能不会显示图像
  • 当您弄错时,它可能会显示它(来自之前的成功),但在运行时您将一无所获!

希望这会有所帮助...

【讨论】:

  • 谢谢!我已经断断续续地搜索了大约一周,在找到此解决方案之前尝试了您可能尝试过的不同变体。
  • @DanRicker 很高兴它对你有帮助 :-) 事实上我已经尝试了很多东西,但我被 VS 设计师误导了很多。 :-/
猜你喜欢
  • 2015-10-16
  • 2012-07-22
  • 1970-01-01
  • 2011-10-16
  • 1970-01-01
  • 1970-01-01
  • 2011-11-06
  • 2010-09-20
  • 2019-10-07
相关资源
最近更新 更多