Я создал всплывающее окно и главное окно.Я хочу загрузить заставку до того, как откроется главное окно и показать полосу прокрутки прогресса.
Я успешно создал всплывающее окно, которое загружается первым, и индикатор выполнения отображает прогресс, однако главное окно загружается до того, как будет выполнен индикатор выполнения, и экран-заставка не будет закрываться после завершения процесса.У меня есть следующий код в моем app.xaml.cs
Любая помощь будет высоко ценится!
public partial class App : Application
{
protected override void OnStartup(StartupEventArgs e)
{
Splash splash = new Splash();
splash.Show();
MainWindow main = new MainWindow();
BackgroundWorker worker = new BackgroundWorker();
worker.WorkerReportsProgress = true;
worker.DoWork += worker_DoWork;
worker.ProgressChanged += worker_ProgressChanged;
worker.RunWorkerAsync();
}
void worker_DoWork(object sender, DoWorkEventArgs e)
{
for (int i = 0; i < 100; i++)
{
(sender as BackgroundWorker).ReportProgress(i);
Thread.Sleep(i);
}
foreach (System.Windows.Window swindow in System.Windows.Application.Current.Windows)
{
(swindow as Splash).Close();
}
}
public void worker_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
int progressstatus = e.ProgressPercentage;
foreach (System.Windows.Window window in System.Windows.Application.Current.Windows)
{
if (window.GetType() == typeof(Splash))
{
(window as Splash).prgProgress.Value = progressstatus;
}
}
}
}