WPF窗口冷启动-显示黑屏

本文关键字:显示 窗口 冷启动 WPF | 更新日期: 2023-09-27 18:26:33

我有一个使用MVVM模式的WPF应用程序。启动窗口由三个控件MenuTitleBar和一个DataGrid组成。目前,完成所有操作(从服务中获取数据、动态生成DataGrid及其渲染)大约需要5秒,之后它会突然显示在UI上。问题是,最终用户在启动程序后必须等待5秒钟才能看到窗口。大多数操作都与DataGrid有关。因此,我将与DataGrid相关的代码移到了Window Loaded Event,现在窗口突然打开,但显示了一个黑屏,过了一段时间,它显示了带有数据的DataGrid。

因此,我的目标是显示带有MenuTitleBar的窗口,在完成初始加载后,在后台线程中执行加载DataGrid的任务,以便在视图中显示加载面板。在完成初始加载后,我如何调用与DataGrid相关的特定方法?

此外,我不能使用飞溅屏幕(这是要求)。

请提出建议?

WPF窗口冷启动-显示黑屏

您应该在后台Thread中执行任何长时间运行的进程。。。这将释放您的UI。如果您不熟悉多线程应用程序,请查看MSDN上的BackgroundWorker Class页面,因为它提供了代码示例。

另一件需要注意的事情是,您应该将IsAsync="True"属性添加到DataGrid.ItemsSource上的Binding声明中,让它知道它必须等待数据。通过这种方式,DataGrid将显示为空,然后当数据准备好时,它将填充。