我正在加载WPF窗口时显示我的进度栏。我成功填写了进度条,但未显示。请参阅屏幕快照以了解我的意思showingProgressBar but when the windows has loaded completly,它是在加载窗口的每个组件时显示的。当我在每个方法的末尾放置一些MessageBox来加载组件like this screenshot和这个screenshot时,它正在执行正确的行为,所以我的问题是如何在xaml窗口加载时显示进度条? 任何帮助将不胜感激。
预先感谢
private void DoWorkButton_Click(object sender, RoutedEventArgs e)
{
testProgressBar.Visibility = Visibility.Visible;
ProgressTextblock.Visibility = Visibility.Visible;
BackgroundWorker worker = new BackgroundWorker();
worker.RunWorkerCompleted += worker_RunWorkerCompleted;
worker.WorkerReportsProgress = true;
worker.DoWork += worker_doWork;
worker.ProgressChanged += worker_ProgressChanged;
worker.RunWorkerAsync();
}
private void worker_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
testProgressBar.Value = e.ProgressPercentage;
ProgressTextblock.Text = (string)e.UserState;
}
private void worker_doWork(object sender, DoWorkEventArgs e)
{
var worker = sender as BackgroundWorker;
worker.ReportProgress(0, String.Format("Chargement des composants de la fenetre"));
}
private void worker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
MessageBox.Show("Fenetre chargée normalement");
}
我在调用加载窗口的每种方法中填充进度条like this
答案 0 :(得分:0)
这是您设置订单的方式,我认为像这样排序应该可以解决该问题:
private void DoWorkButton_Click(object sender, RoutedEventArgs e)
{
testProgressBar.Visibility = Visibility.Visible;
ProgressTextblock.Visibility = Visibility.Visible;
BackgroundWorker worker = new BackgroundWorker();
worker.WorkerReportsProgress = true;
worker.DoWork += worker_doWork;
worker.ProgressChanged += worker_ProgressChanged;
worker.RunWorkerCompleted += worker_RunWorkerCompleted;
worker.RunWorkerAsync();
}