【问题标题】:Load images from a PCL into XAML将图像从 PCL 加载到 XAML
【发布时间】:2013-05-02 09:08:40
【问题描述】:

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

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

但图像未加载。可以加载吗?

【问题讨论】:

  • 我可以确认这个错误。这很令人费解,希望你能弄清楚。
  • 我什至尝试使用 Windows Phone 类库,但它也没有加载图像,尽管设计器正确显示了图像。

标签: c# xaml windows-phone-7 windows-phone-8 portable-class-library


【解决方案1】:

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

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

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

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

主要思想是——你只能在里面存储基于字符串的资源:

从便携式类中排除其他ResourceManager 成员 库是指序列化的对象、非字符串数据和图像 无法从资源文件中检索。你也许可以工作 通过以字符串形式存储对象数据来绕过这个限制。为了 例如,您可以通过转换将数值存储在资源文件中 将它们转换为字符串,您可以检索它们然后将它们转换回来 使用数值数据类型的 Parse 或 TryParse 方法转换为数字。 您可以将图像或其他二进制数据转换为字符串表示形式 通过调用Convert.ToBase64String 方法,并将它们恢复为 通过调用Convert.FromBase64String 方法获得字节数组。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多