0

私のアプリには、ディスク イメージ ファイルにバインドされた Image コントロールが含まれています。いくつかの条件で、画像ファイルを更新する必要があります。しかし、画像ファイルが開いていて上書きできないため、更新できません。私は何をすべきか?

4

2 に答える 2

0

バインディングの削除を試みることができるので、イメージ ファイルを上書きしてバインディングを再度追加するよりも、プログラムでイメージが使用されないようにすることができます。

これについてはよくわかりませんが、試してみる価値はあります

于 2011-03-22T03:11:37.400 に答える
0

今私の解決策は次のとおりです。コンバーターを使用して画像パスを BitmapImage に変換します。コンバーターで、FileStream を使用してイメージを読み込み、データを MemoryStream にコピーして、最後に FileStream を閉じます。

        BitmapImage bmp = new BitmapImage();
        bmp.CacheOption = BitmapCacheOption.OnLoad;
        bmp.BeginInit();
        var fileStream = new FileStream(path, FileMode.Open, FileAccess.Read);
        var memStream = new MemoryStream();
        memStream.SetLength(fileStream.Length);
        fileStream.Read(memStream.GetBuffer(), 0, (int)fileStream.Length);
        memStream.Flush();
        fileStream.Close();
        bmp.StreamSource = memStream;
        bmp.EndInit();
        return bmp;
于 2011-03-22T05:37:27.567 に答える