6

私は次のようにWPFイメージソースを読んでいます:

VB

Dim bmi As BitmapImage = New BitmapImage
bmi.BeginInit
bmi.CacheOption = BitmapCacheOption.None
bmi.CreateOptions = BitmapCreateOptions.IgnoreImageCache
bmi.UriSource = New Uri(input.FullName, UriKind.Absolute)
bmi.EndInit

C#

BitmapImage bmi = new BitmapImage();
bmi.BeginInit();
bmi.CacheOption = BitmapCacheOption.None;
bmi.CreateOptions = BitmapCreateOptions.IgnoreImageCache;
bmi.UriSource = new Uri(input.FullName,  UriKind.Absolute);
bmi.EndInit();

この時点までは正常に機能します。ただし、ユーザーはファイルをコピーしてイメージを更新できます。次に、イメージをリフレッシュしたいと思います。しかし、ファイル「MyFileName」はロックされており、上書きしたいときに、既に使用されてロックされているというエラーがスローされます。

しかし、待ってください、私はここで解決策を探して、それを手に入れました:

bmi.cachoption = OnLoad

が鍵でした...しかし!! 現在、イメージは常に古いイメージであり、新しいファイルに更新されていません。このキャッシュをクリアするには?

VB.Net では、ストリームから System.Drawing.Bitmap を作成しました。WPFでどのように行うのが最善ですか?

よろしく

4

1 に答える 1

9

dlevには良いアドバイスがありました。ここにそれを解決するはずのキャッシュオプションがあります:画像ソースとして設定されたときの画像の上書き(再保存)の問題

imgTemp.CreateOptions = BitmapCreateOptions.IgnoreImageCache;
于 2011-08-19T13:18:28.013 に答える