我正在开发 WPF 浏览器应用程序。我想知道如何理解页面加载完成并且组件显示为开始加载繁重的后台服务。否则我只会看到一个白页几秒钟,直到所有服务都加载完毕......有什么建议可以解决这个问题吗?
这是我尝试过的事情:
public Page1()
{
InitializeComponent();
}
private void Page_Loaded_1(object sender, RoutedEventArgs e)
{
// Just some heavy process in the begining
int j = 1;
for (int i = 0; i < 10000000; i++)
{
for (int k = 0; k < 1000; k++)
j=j * 2;
}
MessageBox.Show("ready");
}
但是,在 page_loaded 中的进程完成之前,页面组件不会加载到页面中。没有page_loaded这个繁重的过程,每样东西都加载得很快,所以UI没有任何问题。
更新:我从页面或窗口的加载事件中了解到的是,当页面或窗口加载时它会被触发,并且页面上的组件和控件的加载,即使它的样式也会在之后发生......并且我似乎没有找到任何显示控件加载完成的事件......
UPDATE2:解决我的问题的更好方法是使用 BackgroundWorker 或 Dispatcher 在后台运行繁重的进程。如本文所述。