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
имущество.