【问题标题】:How to refer to an image from a different assembly in a Windows Store app?如何在 Windows 应用商店应用程序中引用来自不同程序集的图像?
【发布时间】:2013-01-06 19:48:22
【问题描述】:

我有一个 Windows 应用商店应用,可以轻松引用存储为内容的图像:

var image = new BitmapImage(new Uri("ms-appx:///Images/MyImage.png"));

但是,如果图像作为嵌入式资源存储在不同的程序集中怎么办?怎样才能被引用?我尝试了不同的 Uri 表示法,但都没有奏效。

提前致谢。

【问题讨论】:

    标签: image windows-runtime embedded-resource


    【解决方案1】:

    如果您的资产是 Images 文件夹中 MyLibrary.dll 的一部分,这应该可以工作:

    var image = new BitmapImage(new Uri("ms-appx:///MyLibrary/Images/MyImage.png"));
    

    【讨论】:

    • 嗨 Filip,我的问题是关于引用存储为嵌入式资源而不是内容的图像。 ms-appx 表示法似乎不适用于嵌入式资源。
    • 没有 uri 方案可以为您处理这个问题。如果嵌入资源,则需要自己提取。
    • 当然,但我的问题是如何提取嵌入在另一个 DLL 中的图像。当我处理文本资源时,这很容易。但在图像的情况下,我只能获取嵌入资源的 Stream 对象,而 BitmapImage 需要 IRandomAccessStream 不能从 Stream 分配。我已经看到人们将 Stream 对象复制到 InMemoryRandomAccessStream 以便将其传递给 BitmapImage 的示例,但这似乎是一种矫枉过正(在流之间进行复制)。所以我想知道是否有更直接的方法。
    • 我对此表示怀疑,因为不支持将嵌入式资源作为常用方法。
    • 我明白了。感谢您的帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多