Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在项目之间共享图像等资产的最佳方式_C#_Xaml_Windows Runtime_Winrt Xaml - Fatal编程技术网

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

C# 在项目之间共享图像等资产的最佳方式,c#,xaml,windows-runtime,winrt-xaml,C#,Xaml,Windows Runtime,Winrt Xaml,我想在多个WinRT项目之间共享一些资产如图标 对于WPF来说,这是一个无需思考的问题(几乎是): 为资源创建库项目 将资产标记为资源,以将其嵌入生成的程序集中 从其他项目中引用资产项目 使用有点奇怪的“pack”URI格式引用XAML代码中的图标 与Windows运行时共享它们的最佳方式是什么? 是否有这样的资源嵌入和共享功能,或任何其他解决方案 如果没有,我想我可以用“复制为链接”将它们添加到每个项目中,但我希望有一个干净的方法 编辑:我开始天真地做这件事,就像在WPF项目中一样: 我

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

对于WPF来说,这是一个无需思考的问题(几乎是):

  • 为资源创建库项目
  • 将资产标记为资源,以将其嵌入生成的程序集中
  • 从其他项目中引用资产项目
  • 使用有点奇怪的“pack”URI格式引用XAML代码中的图标
与Windows运行时共享它们的最佳方式是什么?

是否有这样的资源嵌入和共享功能,或任何其他解决方案

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

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

  • 我创建了一个新的库项目“资产”,并在其中添加了图像作为“内容”
  • 我从我的主要项目中引用了这个项目
但我无法使用新的URI格式引用图像:

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

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

以下是整个过程:

  • 创建库项目,添加图像并将其构建操作设置为“内容”
  • 从主项目中引用库
要引用图像本身,您必须:

  • 使用“ms appx”模式,而不是像您在谷歌上看到的那样使用“ms资源
  • 使用//而不是//指定绝对路径

最重要的是,不要相信Visual Studio设计师:

  • 如果正确,它可能不会显示图像
  • 当您出错时,它可能会显示它(来自以前的成功),但在运行时您将一无所获

希望这有帮助……

我不确定,但请看一下PCL@sebagomez谢谢你的回答。但AFAIK PCL是WinRT的一个子集,是其他平台(如.Net)的最低公分母,因此它可能支持的WinRT程序集比裸WinRT程序集少。此外,还有一个问题,那就是如何最好地将图标嵌入其中,然后从其他项目中引用它们……我理解。。。我的观点是,如果你能将你的图标(资源)嵌入到PCL组件中,你可能会从把它们放在一个地方中获益。。。只是想一想谢谢你!我已经断断续续地搜索了大约一个星期,在找到这个解决方案之前,你可能尝试过不同的变体。@DanRicker很高兴它对你有帮助:-)事实上,我已经尝试了很多东西,我被VS设计师误导了很多-/