XAML Imageのキャッシュ

CSharp用のアイキャッチUWP

作成したUWPアプリケーションでWEB上の画像ファイルを更新してもXAMLのイメージが更新されない問題の対処。
「UWP XAML Image Cache」で検索した結果の自分向けの備忘録。

スポンサーリンク

Imageタグ

Imageタグは結構単純にSourceにUriを指定するだけで画像を表示してくれるので手軽。

<Image Source="{ImageのPath}"/>

たったこれだけでアプリケーション上に画像を表示できる。

画像の差し替えができない

問題発生。同名のファイルの更新があった場合にアプリ側はキャッシュから呼び出すため古い画像を表示してしまう。
要は画像を更新してもアプリ側では更新されない。

対処法

<Image>
    <Image.Source>
        <BitmapImage UriSource="{Binding Url}" CreateOptions="IgnoreImageCache"/>
    </Image.Source>
</Image>

CreateOptionのIgnoreImageCacheがキャッシュを使用せずに読み込むというプロパティらしい。
これで問題なく動作する。ただし毎回読み込みが発生するので画像が多い場合は動作が遅くなる可能性もあるので注意が必要。

参考サイト

Images are Getting cached in UWP application
In my UWP application I am binding the images from azure. It is getting cached when it get the response. When I change the image in the azure it's not reflectin...

念のため公式サイトも

BitmapImage.CreateOptions プロパティ (System.Windows.Media.Imaging)
BitmapCreateOptions の BitmapImage を取得します。値の設定も可能です。

まとめ

相変わらずUWPは資料が少なく検索するのが大変。
そもそもにUWPの開発者の人口が気になる。多分圧倒的に少ない気がする。

コメント

タイトルとURLをコピーしました