C# WinUI 3アプリを作っていく途中で、調べたことを忘録的に投稿します。今回はWinUI3プロジェクトで[Image]コントロールに表示する画像リソースのキャッシュを無効にして読み込む場合の対処法です。
[Image]のキャッシュはWindows任せ
WinUI3で利用できる[Image]コントロールは、BitmapImageなどでリソースを指定して画像を表示できます。
その際に再読み込みする場合に、読み込み負荷を軽減するためにキャッシュ機構が用意されています。
この機構はオペレーティングシステムで制御されているため、細かく設定はできないようです。
WinUI3の場合は[BitmapImage]クラスの[CreateOptions]プロパティで無効にすることは可能です。
具体的には、次のコードで画像のキャッシュを無効になります。
BitmapImage bitmapImage = new BitmapImage();
bitmapImage.CreateOptions = BitmapCreateOptions.IgnoreImageCache;
[CreateOptions]プロパティに[BitmapCreateOptions 列挙型]で指定しますが、利用できる値は2つしかありません。
名前 | 値 | 説明 |
IgnoreImageCache | 8 | 既存のイメージのキャッシュを使用せずにイメージを読み込みます。 このオプションは、キャッシュ内のイメージを更新する必要がある場合にのみ選択する必要があります。 |
None | 0 | オプションは指定されていません。 |
既定値[None]は画像リソースのキャッシュが有効で、[IgnoreImageCache]で無効になります。
まとめ
C# WinUI 3アプリを作っていく途中で、調べたことを忘録的に投稿します。今回はWinUI3プロジェクトで[Image]コントロールに表示する画像リソースのキャッシュを無効にして読み込む場合の対処法について紹介しました。
WinUI3の場合は[BitmapImage]クラスの[CreateOptions]プロパティで無効にすることは可能です。
WinUI 3で[Image]コントロールに表示する画像リソースのキャッシュを無効にしたい人の参考になれば幸いです。
スポンサーリンク
最後までご覧いただき、ありがとうございます。