Загрузка изображений в Listview WPF, например Windows 7

В настоящее время я показываю много изображений (миниатюры изображений) в списке. Ради управления памятью я использую виртуализацию в Listview, и она выполняет свою работу.

Теперь я хочу показать значок по умолчанию вместо большого пальца оригинальных изображений, а затем немного позже загрузить оригинальный большой палец. взгляните на снимок ниже введите здесь описание изображения

Может ли кто-нибудь предложить, как я могу этого достичь?

Спасибо в ожидании


person Hardik    schedule 04.06.2013    source источник


Ответы (1)


Взгляните на PriorityBinding. В основном вы предоставляете два свойства: одно с фактической загрузкой миниатюры, а другое с предварительно загруженным значком по умолчанию. Тот, у которого полная миниатюра, будет IsAsync="True", и пока он работает в фоновом режиме, другая неасинхронная привязка просто захватит значок, чтобы отобразить его.

person dowhilefor    schedule 04.06.2013
comment
Извините, это вопрос? Какие у вас проблемы с производительностью? Убедитесь, что вы установили флаг IsAsync для привязки с фактической загрузкой растрового изображения. Постарайтесь свести к минимуму переключения контекста или изменения свойств в потоке пользовательского интерфейса, а также, если вы загружаете изображение самостоятельно, не забудьте заморозить его, чтобы его можно было передать через границы потоков. В противном случае: понятия не имею, проверьте свой вывод; отлаживать; профиль. - person dowhilefor; 05.06.2013
comment
Есть ли способ загрузить изображение по умолчанию по умолчанию, а затем перейти к выборке фактического изображения после загрузки пользовательского интерфейса. В настоящее время он сначала пытается получить фактическое изображение, а затем спит - person Hardik; 06.06.2013
comment
Не уверен, что вы спрашиваете, но привязка приоритета именно для этого. В конечном итоге он будет вызывать каждую привязку, но в фиксированном порядке от первого к последнему. Таким образом, ваши первые привязки должны быть IsAsync=True, иначе в этом нет смысла. Последнее свойство, которое должно быть самым быстрым, имеет IsAsynch=False и просто возвращает предварительно загруженное изображение-заполнитель, конечно, в этом связанном геттере не должно происходить фактической загрузки. Если у вас все еще есть проблемы, вам, возможно, придется обновить свой вопрос и показать код, что идет не так. - person dowhilefor; 06.06.2013