画像パス (ObservableCollection をソースとして) を持つ Listbox があり、IValueConverter はそれらを画像のサムネイルに変換しています。
これらのファイルを削除しようとすると、次のエラーが表示されます。
「別のプロセスで使用されているため、プロセスはファイル 'C:\test.jpg' にアクセスできません。」
public class UriToBitmapConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
try
{
BitmapFrame bit = BitmapFrame.Create(new Uri(value.ToString()), BitmapCreateOptions.DelayCreation, BitmapCacheOption.OnDemand);
if (bit.Thumbnail != null)
{
return bit.Thumbnail;
}
else
{
BitmapImage bi = new BitmapImage();
bi.BeginInit();
bi.DecodePixelWidth = 200;
bi.UriSource = new Uri(value.ToString());
bi.CacheOption = BitmapCacheOption.OnLoad;
bi.EndInit();
return bi;
}
}
catch
{
return null;
}
}
イメージを強制的に解放したり、ファイルを強制的に削除するにはどうすればよいですか? ありがとうございました。