none
Не меняется изображение при повторной загрузке WPF RRS feed

  • Вопрос

  • Добрый день! Я загружаю в элемент Image в отдельном потоке картинку следующим образом

        Private Function GetBitmap(ByVal Path As String) As BitmapImage
            Try
                Dim BitmapImage As New BitmapImage
                BitmapImage.BeginInit()
                BitmapImage.UriSource = New Uri(Path, UriKind.RelativeOrAbsolute)
                BitmapImage.CacheOption = BitmapCacheOption.OnLoad
                BitmapImage.EndInit()
                BitmapImage.Freeze()
                Return BitmapImage
            Catch ex As Exception
                Return Nothing
            End Try
        End Function
    После этого - картинку на диске я меняю на другую с таким-же именем и заново повторяю эту функцию для получения картинки, но картинка в элементе Image не меняется. Я так понял, что предыдущая картинка осталась в памяти. Причем если создать новый элемент Image и попытаться загрузить в него картинку по этому-же пути - она опять будет старая. Как сделать так, что бы картинка менялась в элементе при повторной загрузке, когда она будет заменена на диске. Ну и что бы сам файл на диске не блокировался приложением, а была возможность его удалить / заменить. 


    • Изменено Siompc 8 апреля 2020 г. 14:08
    8 апреля 2020 г. 14:07

Ответы

  • Здравствуйте,

    Скорее всего для избежания кэширования изображения, лучше использовать FileStream вместо Uri. Посмотрите пример здесь: How to release an Image.Source to update the image in WPF?


    Если Вам помог чей-либо ответ, пожалуйста, не забывайте жать на кнопку "Предложить как ответ" или "Проголосовать за полезное сообщение" Мнения, высказанные здесь, являются отражение моих личных взглядов, а не позиции корпорации Microsoft. Вся информация предоставляется "как есть" без каких-либо гарантий.

    • Помечено в качестве ответа Siompc 8 апреля 2020 г. 17:53
    8 апреля 2020 г. 15:12
    Модератор

Все ответы

  • Здравствуйте,

    Скорее всего для избежания кэширования изображения, лучше использовать FileStream вместо Uri. Посмотрите пример здесь: How to release an Image.Source to update the image in WPF?


    Если Вам помог чей-либо ответ, пожалуйста, не забывайте жать на кнопку "Предложить как ответ" или "Проголосовать за полезное сообщение" Мнения, высказанные здесь, являются отражение моих личных взглядов, а не позиции корпорации Microsoft. Вся информация предоставляется "как есть" без каких-либо гарантий.

    • Помечено в качестве ответа Siompc 8 апреля 2020 г. 17:53
    8 апреля 2020 г. 15:12
    Модератор
  • Идеально :) Спасибо
    8 апреля 2020 г. 17:53