UWP应用中的图片被缓存了

4

我在我的UWP应用程序中从Azure绑定图像。 当它得到响应时,它会被缓存下来。 当我在Azure上更改图像时,它不会在我的UI中反映出来,而是显示来自缓存的图像。 有没有办法清除我的UWP应用程序的缓存或限制应用程序缓存图片?

1个回答

8
你尝试过使用CreateOptions="IgnoreImageCache"吗?
<Image>
    <Image.Source>
        <BitmapImage UriSource="{Binding Url}" 
                     CreateOptions="IgnoreImageCache" 
                     DecodePixelWidth="120" 
                     DecodePixelHeight="120" />
    </Image.Source>
</Image>

请确保设置正确的解码像素宽度/高度,以避免使用不必要的内存。
根据文档 -
引用: 您应该只在以下情况下使用BitmapCreateOptions.IgnoreImageCache,即您知道通过统一资源标识符(URI)检索到的源图像文件有可能随时间而变化。否则,将CreateOptions设置为使用BitmapCreateOptions.IgnoreImageCache会导致所有新检索的图像源再次进行解码,这可能会对性能产生负面影响。
因此,也许尝试将None设置为CreateOptions的默认值,并且仅在确定云端已更新图像时将其更新为IgnoreImageCache。请注意,CreateOptions还是一个依赖属性,因此您也可以使用数据绑定。

我最初是直接在 Image 元素上设置源属性(而不是在 BitmapImage 上),并且我正在使用 x:Bind,这很好用。但是当使用这个解决方案时,x:Bind 不起作用了。有没有办法在此情况下使用 x:Bind? - slayernoah
有没有办法在整个应用程序中禁用缓存? - Steini

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接