xaml - ListView 中的 ImageEx 冻结 UIThread
问题描述
uwp-community-toolkit version2.2
我的列表视图中有几个 ImageEx 元素,它们绑定到 url。所以当我启动我的应用程序时,UI 线程似乎被 ImageEx 阻止了。在从 Internet 加载所有 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"/>
解决方案
该
ImageEx
控件异步下载图像,同时显示加载指示器。然后将源图像存储在应用程序的本地缓存中,以保留资源和加载时间。
对于我的测试,如果启用IsCacheEnabled
属性,您将无法流畅地调整窗口大小。因为有很多 I/O 操作会在图像缓存时导致 UI 冻结。
如果您想在加载图像期间流畅地调整窗口大小,您可以禁用
IsCacheEnabled
属性。
推荐阅读
- python-3.x - 权限被拒绝安装 pyforest 笔记本扩展
- python - Python 官方最新版本、Homebrew 版本和安装版本在 macOS 上有所不同
- python - Python:Windows 上的多处理 -> 共享只读内存
- html - 强制屏幕阅读器将数字读取为单个数字
- javascript - Jquery通过内部元素的文本切换列表元素
- pyspark - Pyspark中转置数据帧的通用解决方案
- python-3.x - 如何在 tkinter 中将 Calendar.get_date() 与 StringVar() 链接
- .net-4.0 - System i Navigator 阻止 ASP.NET v4.0 在应用程序池中运行
- python - 自动识别新文件并获取路径
- flutter - 从 Flutter 网页导航中移除井号“#”