WPF - Mainwindow загружается до того, как заставка показывает индикатор завершения, а заставка не закрывается после завершения - PullRequest
0 голосов
/ 25 сентября 2018

Я создал всплывающее окно и главное окно.Я хочу загрузить заставку до того, как откроется главное окно и показать полосу прокрутки прогресса.

Я успешно создал всплывающее окно, которое загружается первым, и индикатор выполнения отображает прогресс, однако главное окно загружается до того, как будет выполнен индикатор выполнения, и экран-заставка не будет закрываться после завершения процесса.У меня есть следующий код в моем 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;
            }
        }
    }
}
...