小智 4
据我所知,您正在使用 MVVM 模式。我会尝试以下方法:
在启动期间创建视图并将其设置DataContext为您的视图模型实例。然后模拟 WPF 执行的工作。视图上的调用Measure()和Arrange()方法强制 WPF 更新数据绑定并生成可视化树。
但只有一个 UI 线程。因此,此时再次阻止您的启动例程。您可以通过将“工作”分成更小的部分来避免这种情况。也许您的视图模型中有一些项目集合。然后,您可以使用DipatcherTimer并在每个步骤中向集合中添加一些合理数量的项目,并在每次迭代后调用 Measure 和 Arrange 来更新视图的可视化树。视图完全初始化后,渲染不应再阻塞。