我使用Border的Background属性设置ImageBrush,ImageSource绑定到Contact对象上的ImageUri属性。
<Border>
<Border.Background>
<ImageBrush ImageSource="{Binding ImageUri, Mode=OneWay}" AlignmentX="Center" AlignmentY="Center" Stretch="UniformToFill"/>
</Border.Background>
</Border>我正在使用Azure Blob存储存储图像,它运行良好。但是,如果我在已经设置了图像集的联系人上更新图像,我的ImageBrush就不会显示更改。我试过重新启动这个应用程序,这并没有什么不同。当我尝试从url下载它并获得新的映像时,图像肯定正在更新。另外,如果我重新安装应用程序,它将正确显示新图像。因此,看起来该应用程序自动缓存旧图像,并显示该图像而不是新图像。(我已经怀疑这一点,因为第一次获取图像需要一点时间,但在那之后就是即时的。)
有什么办法可以防止这种行为吗?
发布于 2016-05-23 18:56:53
显然,您需要显式地告诉它不要缓存图像。将我的ImageBrush替换为:
<ImageBrush AlignmentX="Center" AlignmentY="Center" Stretch="UniformToFill">
<ImageBrush.ImageSource>
<BitmapImage CreateOptions="IgnoreImageCache" UriSource="{Binding ImageUri, Mode=OneWay}"/>
</ImageBrush.ImageSource>
</ImageBrush>帮我解决了这个问题。
https://stackoverflow.com/questions/37397668
复制相似问题