2

我正在尝试从 WP8 项目中的 XAML 加载图像。该图像位于另一个程序集中,它是一个可移植的类库。我正在使用它来加载图像:

<ImageBrush ImageSource="/PortableClassLibrary1;component/Assets/Images/Background.jpg" />

但图像未加载。是否可以加载它?

4

1 回答 1

2

这通常是不可能的,您正在尝试使用格式化为 Windows Phone 的 Uri 访问 PCL 内的图像。

PCL 的想法是避免特定于平台的部分,并提供一种使用代码的通用方式。因此,不包括图像和其他资源。

您可以将图像移动到 WP 项目。无论如何,在 W8 应用程序中使用它们是没有意义的。您需要更高分辨率的图像等。

有一篇关于 PCL 资源的好文章。 http://msdn.microsoft.com/en-us/library/hh871422.aspx

主要思想是-您只能在其中存储基于字符串的资源:

ResourceManager从可移植类库中排除其他成员意味着无法从资源文件中检索序列化对象、非字符串数据和图像。您可以通过以字符串形式存储对象数据来解决此限制。例如,您可以通过将数值转换为字符串来将数值存储在资源文件中,您可以检索它们,然后使用数值数据类型的 Parse 或 TryParse 方法将它们转换回数字。您可以通过调用该方法将图像或其他二进制数据转换为字符串表示Convert.ToBase64String,并通过调用该方法将它们恢复为字节数组Convert.FromBase64String

ps在这里,你可以找到一个关于它的长线程。有一些“解决方案”,但如果可能的话,我更愿意将图像存储在特定于平台的程序集中。

于 2013-06-09T09:27:50.653 回答