在项目之间共享图像等资产的最佳方式

Pra*_*eek 5 c# xaml windows-runtime winrt-xaml

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

对于 WPF,这很容易(几乎):

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

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

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

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

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

  • 我创建了一个新的库项目“资产”并将其中的图像添加为“内容”
  • 我从我的主项目中引用了这个项目

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

<Image Source="ms-resource://Assets/Files/Mushroom.png"></Image>
Run Code Online (Sandbox Code Playgroud)

Pra*_*eek 4

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

这是完整的过程:

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

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

  • 使用“ms-appx”架构,而不是您在 Google 上找到的“ ms-resource ”
  • 使用///而非//指定绝对路径

    <图片来源=“ms-appx:///Assets/Mushroom.png”>

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

  • 当你正确时它可能不会显示图像
  • 当你犯错时,它可能会显示它(来自之前的成功),但在运行时你将一无所获!

希望这可以帮助...