【发布时间】:2017-12-21 22:46:51
【问题描述】:
在我的 UWP 应用程序中,我从 azure 绑定图像。它在收到响应时被缓存。当我更改 azure 中的图像时,它不会反映在我的 UI 中,而是显示来自缓存的图像。 有什么方法可以清除我的 UWP 应用程序的缓存或限制应用程序缓存图像?。
【问题讨论】:
标签: xaml uwp windows-store-apps
在我的 UWP 应用程序中,我从 azure 绑定图像。它在收到响应时被缓存。当我更改 azure 中的图像时,它不会反映在我的 UI 中,而是显示来自缓存的图像。 有什么方法可以清除我的 UWP 应用程序的缓存或限制应用程序缓存图像?。
【问题讨论】:
标签: xaml uwp windows-store-apps
你试过CreateOptions="IgnoreImageCache"吗?
<Image>
<Image.Source>
<BitmapImage UriSource="{Binding Url}"
CreateOptions="IgnoreImageCache"
DecodePixelWidth="120"
DecodePixelHeight="120" />
</Image.Source>
</Image>
但请确保设置正确的解码像素宽度/高度以避免使用不必要的内存。
您应该只在某些情况下使用 BitmapCreateOptions.IgnoreImageCache 您知道 Uniform 检索到的源图像文件 资源标识符 (URI) 有可能随着时间而改变。 否则,将 CreateOptions 设置为使用 BitmapCreateOptions.IgnoreImageCache 导致所有新检索到的图像 源要再次解码,这可能会对性能产生负面影响。
所以也许可以尝试将None 设置为CreateOptions 的默认值,并且只有在您绝对确定图像已被云更新后才将其更新为IgnoreImageCache。注意CreateOptions 也是dependency property,所以你应该也可以使用数据绑定。
【讨论】:
Image 元素上设置源属性(而不是在 BitmapImage 上),并且我使用 x:Bind 效果很好。但是当使用这个解决方案时,x:Bind 不起作用。有什么方法可以使用 x:Bind 吗?