ImageEx в ListView замораживает UIThread - PullRequest
0 голосов
/ 29 апреля 2018

uwp-community-toolkit version2.2

У меня есть несколько элементов ImageEx внутри моего списка, которые они привязывают к URL-адресам. Поэтому, когда я запускаю свое приложение, кажется, что поток пользовательского интерфейса заблокирован ImageEx. Я не могу переместить окно приложения, изменить его размер, прокрутить список или взаимодействовать с другой частью приложения, пока все изображения ImageEx не будут загружены из Интернета.

Я хочу знать, это нормальное поведение или нет ?! И есть ли способ решить проблему?!

Мой шаблон ListViewItem:

<DataTemplate x:DataType="m:RepoModel">
   <controls:ImageEx x:Phase="3"
        IsCacheEnabled="True"
        Source="{x:Bind owner.avatar_url}"
        Height="125" Width="125"                                       
        PlaceholderSource="ms-appx:///Assets/pl.png"/>

Ответы [ 2 ]

0 голосов
/ 23 июля 2018

Как упоминал Шон Кендрот, они исправили его на uwp-community-toolkit version3.0, и я просто тестирую стабильную версию и могу подтвердить, что

0 голосов
/ 30 апреля 2018

Элемент управления ImageEx загружает изображения асинхронно, показывая индикатор загрузки. Исходные изображения затем сохраняются в локальном кэше приложения для сохранения ресурсов и времени загрузки.

Для моего теста, если вы включите свойство IsCacheEnabled, вы не сможете быстро изменить размер окна. Потому что существует много операций ввода-вывода, которые вызывают зависание пользовательского интерфейса при кэшировании изображения.

Если вы хотите плавно изменить размер окна во время загрузки изображения, вы можете отключить
IsCacheEnabled собственность.

...