在Silverlight / Windows Phone应用程序中缓存显示的图像

时间:2013-05-15 20:32:21

标签: silverlight windows-phone-7 xaml windows-phone-8 windows-phone

我的应用会显示一个包含文字和LongListSelector的列表(确切地说Image)。对于图像,我目前将Source属性绑定到模型类提供的HTTP URL,这可以正常工作。但是,我现在问自己,如果这种策略在数据传输方面通常是可取的:

  1. 框架是否对下载的图像执行任何缓存?
  2. 如果是这样,缓存的范围如何? (应用程序的运行时,甚至更长?)
  3. 如果没有,是否存在关于如何在这种情况下执行缓存的现有机制,模式或建议?

1 个答案:

答案 0 :(得分:1)

  1. Framework仅在内存中执行缓存,因此在应用程序重新启动缓存后将被清除
  2. 仅限运行时

  3. 我有一个解决方案给你。它是JetImageLoader,我是为应用程序创建的,我们需要加载,缓存并显示大量的徽标,图标等。

  4. 它可以用作绑定转换器,所以你甚至不应该改变你的代码!只需更新您的XAML!

    请查看samples in repository,你会喜欢它;)

    功能

    • 在磁盘上缓存
    • 内存缓存
    • 完全异步
    • 可用作绑定转换器或以编程方式从您的代码中
    • 完全开源,分叉并改进它!

    以下是示例:

    <Image Source="{Binding ImageUrl, Converter={StaticResource MyAppJetImageLoaderConverter}}"/>
    

    P.S。对不起,我从另一个问题中复制了我的答案,但是在Windows手机上的图像缓存是一个很大的问题,我想分享我的解决方案,所以每个人都可以使用它并改进开发者社区