我正在使用ImageBrush
设置Border
的Background
属性。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 下载它并获取新图像。此外,如果我重新安装该应用程序,它会正确显示新图像。因此,该应用程序似乎会自动缓存旧图像并显示该图像而不是新图像。(我已经怀疑了这一点,因为第一次获得图像需要一点时间,但之后它是即时的。
有什么方法可以防止这种行为吗?
显然,您需要明确告诉它不要缓存图像。将我的ImageBrush
替换为:
<ImageBrush AlignmentX="Center" AlignmentY="Center" Stretch="UniformToFill">
<ImageBrush.ImageSource>
<BitmapImage CreateOptions="IgnoreImageCache" UriSource="{Binding ImageUri, Mode=OneWay}"/>
</ImageBrush.ImageSource>
</ImageBrush>
为我解决了这个问题。