Обновление изображений WPF (проблема с кешем) - PullRequest
3 голосов
/ 29 марта 2011

У меня большая проблема с динамической загрузкой изображения в моем приложении.Когда я запускаю приложение, источник изображения заполнителя пуст.когда я нажимаю на кнопку, изображение создается и загружается в качестве источника заполнителя.когда я нажимаю снова, создается новое изображение, но показывается старое изображение.Создание образа работает отлично.Файлы на моем диске - это те файлы, которые должны быть.

Следующая функция устанавливает источник заполнителя изображения.

public void setImage(string path)
    {
        BitmapImage img = new BitmapImage();
        img.BeginInit();
        img.UriSource = new Uri(path, UriKind.Relative);
        img.EndInit();

        //Set Refreshing Options
        img.CacheOption = BitmapCacheOption.None;
        img.CreateOptions = BitmapCreateOptions.IgnoreImageCache;


        placeholder.Source = img;
    }

Два параметра BitmapCacheOption и BitmapCreateOptions ничего не меняют.

Кто-нибудь из вас может мне помочь?

1 Ответ

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

WPF кэширует изображения внутри, по соображениям производительности. Если вы используете один и тот же Uri оба раза и каждый раз ожидаете получить другое изображение (например, если Uri находится на веб-сервере, который возвращает случайное изображение), то этот кеш будет проблемой для вас.

Вероятно, вам придется создать WebRequest и вручную загрузить изображение, а не полагаться на класс Image, чтобы сделать это за вас.

Другой вариант - изменить Uri тривиальным способом, который делает его уникальным. Например, вы можете добавить GUID в виде строки запроса.

...