【问题标题】:how should a metro app cache images for tombstoning (and should it)?Metro 应用程序应该如何缓存用于墓碑的图像(并且应该)?
【发布时间】:2012-06-19 13:16:12
【问题描述】:

我有一个 c# metro 应用程序,它下载具有 uri 属性的对象集合。 这个集合被绑定到一个带有 Image 源绑定的 ListBox,这很好用。

当应用程序被墓碑时,我想保留所有应用程序状态,包括从互联网下载的集合和图像。

在这种情况下,用户的操作导致集合被下载并正确显示,他们切换到另一个应用程序并且我的应用程序被终止。用户然后切换回我的应用程序,并期望显示与以前完全相同的显示,但现在未连接到互联网。

保存集合很容易,并且挂钩到 Image 上的 ImageLoaded 事件很容易,但我怎样才能保存该图像?

这是必需的功能吗,windows会自动缓存这种基于http的图像吗?

请注意,RP 的 API 已更改,使用 WritableBitmap 的常见示例不再有效,因为构造函数不再接受 ImageSource。

更新:

Metro APP - BitmapImage to Byte[] or Download Image from Web and convert it to a Byte[] Array 这就是我害怕的,那些不使用现有的工作绑定图像元素,而是进行单独的 http 调用。我真的不想下载我所有的图像两次。 我会尝试一个尖峰,看看在这种情况下windows是否缓存了http请求。

【问题讨论】:

  • 不幸的是,一旦 ImageOpened 事件触发,这种使用 HttpClient 从 Xaml 中的图像中获取 Uri 的方法确实再次命中服务器并重新下载文件,导致每个图像文件两次命中在服务器上,这是不可接受的。

标签: c# windows-8 microsoft-metro tombstoning


【解决方案1】:

此答案与已删除的先前答案相呼应。

提供上述所需用户体验的唯一方法是在本地手动缓存图像。这个领域的任何事情都不是为程序员做的。

未提供的是编码解决方案,已创建一个新问题来解决此问题。 How can I save an image from an ImageSource without downloading again?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多