ImageEx в ListView замораживает UIThread

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 ответа

Решение

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

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

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

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

Другие вопросы по тегам