作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我们正在开发一个 WPF 桌面应用程序,用于显示当前通过 HTTP 获取的图像。
图像已经针对质量/尺寸进行了优化,但每次获取图像时都会明显等待。
有没有办法在客户端缓存图片,这样就不会每次都下载?
最佳答案
我知道这个问题很老了,但我最近不得不在 WPF 应用程序中使用缓存,发现在 .Net 3.5 中有一个更好的选项,通过设置 UriCachePolicy 来使用 BitmapImage。 ,这将使用系统级缓存:
<Image.Source>
<BitmapImage UriCachePolicy="Revalidate"
UriSource="https://farm3.staticflickr.com/2345/2077570455_03891081db.jpg"/>
</Image.Source>
您甚至可以在 app.config 中设置该值,让您的所有应用都使用默认值进行缓存:
<system.net>
<requestCaching defaultPolicyLevel="CacheIfAvailable"/>
</system.net>
您将在此处找到 RequestCacheLevel 值的解释:http://msdn.microsoft.com/en-us/library/system.net.cache.requestcachelevel(v=vs.110).aspx
此功能理解 HTTP/1.1 header ,因此如果您设置 Revalidate,它会使用 If-Modified-Since header 来避免每次都下载它,但仍会检查图像是否已更改,因此您始终拥有正确的图像。
关于wpf - 如何在 WPF 应用程序的客户端上缓存图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1878060/
我是一名优秀的程序员,十分优秀!