我正在从某个窗口 window1 导航到 Mainwindow
在我的 MainWindow_loaded 方法中,我有太多计算,所以当我导航到主窗口时,窗口变白,直到所有计算完成并加载窗口
我在主窗口中尝试过
private void MainWindow_Loaded_1(object sender, RoutedEventArgs e)
BackgroundWorker worker = new BackgroundWorker();
worker.DoWork += (o, ea) =>
{
do large computation
};
worker.RunWorkerCompleted += (o, ea) =>
{
_busy.IsBusy = false;
};
_busy.IsBusy = true;
worker.RunWorkerAsync();
}
但问题是它导航到 Mainwindow 时没有计算加载事件处理程序中的必要数据,甚至不在 UI 中显示等待栏? ? 是否可以在 MainWindow_Loaded 中显示等待栏和所有数据计算?
我已经将 ExtendedWpfToolkit 用于 _busy,它是忙碌指示器
最佳答案
您可以订阅您的后台 worker 以报告进度。
worker.WorkerReportsProgress = true;
现在您可以让您订阅的事件触发此进度报告。
worker.ProgressChanged += new ProgressChangedEventHandler(worker_ProgressChanged);
在此过程中,您可以创建一个进度条,它可以根据由您的计算触发的此 worker_ProgressChanged
事件自行更新。
看来您已经找到了 IsBusy
,因此您可以让进度条仅在为真时显示。
关于c# - WPF 窗口加载的等待屏幕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14814882/