gpt4 book ai didi

wpf - 如何预渲染 View ?

转载 作者:行者123 更新时间:2023-12-04 09:31:33 26 4
gpt4 key购买 nike

我的 ViewModel 根据用户点击选择一个 View 。其中一个 View 包含许多视觉元素 - 带有数据模板的 View 模型,其中包含带有数据模板的 View 模型,每个 View 都在带有背景图像刷的 Canvas 上呈现。完整 View 以大约 100 个这样的 Canvas 画笔结束,每个画笔都叠加了十几个椭圆,整个 View 位于可滚动的 View 框中。

第一次创建此 View 时,用户单击然后在其全部呈现时停留一段时间。我想早点完成这个渲染 - 例如在启动期间。我已经创建了 View 对象,但是当用户单击时,我们仍然在渲染完成时徘徊。

有没有办法让 WPF/xaml 预渲染它,以便点击响应更好?

最佳答案

如我所见,您正在使用 MVVM 模式。我会尝试以下方法:

在启动期间创建 View 并设置其DataContext到您的 View 模型实例。然后模拟 WPF 执行的工作。调用 Measure()Arrange() View 上的方法强制 WPF 更新数据绑定(bind)并生成可视化树。

但是只有一个 UI 线程。因此,此时再次阻止您的启动程序。您可以通过将“工作”分成更小的部分来避免这种情况。也许您的 View 模型中有一些项目集合。然后你可以使用 DipatcherTimer并在每个步骤中向集合中添加一些合理数量的项目,并在每次迭代后调用 Measure 和 Arrange 以更新 View 的可视化树。
View 完全初始化后,渲染不应再阻塞。

关于wpf - 如何预渲染 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13721992/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com