Как обновить привязку файла изображения к управлению изображением? - PullRequest
0 голосов
/ 22 марта 2011

Мое приложение включает в себя элемент управления Image, который имеет привязку к файлу образа диска. При некоторых условиях файл изображения необходимо обновить. Но обновление не может быть сделано, потому что файл изображения открыт и не может быть перезаписан. Что мне делать?

Ответы [ 2 ]

0 голосов
/ 22 марта 2011

Теперь мое решение: Использовать конвертер для преобразования пути изображения в 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;
0 голосов
/ 22 марта 2011

Вы можете попытаться удалить привязку, чтобы изображение не использовалось вашей программой, чем перезаписать файл изображения и затем повторно добавить привязку

Я не уверен в этом, но оно того стоитпопытка

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...