2016-05-23 55 views
0

我正在通過使用ImageBrush來設置BorderBackground屬性。 ImageSource綁定到我的Contact對象上的ImageUri屬性。ImageSource綁定緩存圖片

<Border> 
    <Border.Background> 
     <ImageBrush ImageSource="{Binding ImageUri, Mode=OneWay}" AlignmentX="Center" AlignmentY="Center" Stretch="UniformToFill"/> 
    </Border.Background> 
</Border> 

我使用Azure Blob存儲來存儲圖像,它工作正常。但是,如果我更新已設置圖像的聯繫人上的圖像,我的ImageBrush不顯示更改。我試過重新啓動應用程序,它沒有任何區別。圖像絕對正在更新,因爲我試圖從網址下載它並獲取新圖像。另外,如果我重新安裝應用程序,它會正確顯示新圖像。所以似乎應用程序會自動緩存舊圖像並顯示該圖像而不是新圖像。 (我已經懷疑這一點,因爲它需要一點點才能第一次獲得圖像,但之後它是即時的。)

有沒有什麼辦法來防止這種行爲?

回答

1

顯然你需要明確地告訴它不要緩存圖像。將我的ImageBrush替換爲:

<ImageBrush AlignmentX="Center" AlignmentY="Center" Stretch="UniformToFill"> 
    <ImageBrush.ImageSource> 
     <BitmapImage CreateOptions="IgnoreImageCache" UriSource="{Binding ImageUri, Mode=OneWay}"/> 
    </ImageBrush.ImageSource> 
</ImageBrush> 

修復了我的問題。