Progress Bar zamykanie okna po zakończeniu pracy

Progress Bar zamykanie okna po zakończeniu pracy
Riw
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Gdynia
  • Postów: 201
0

Witam,stworzyłem sobie SplashScreen z progress barem który bez zarzutu ładuję się do 100% i chciałbym,żeby po wykonaniu tej czynności okno się zamknęło jednakże gdy próbuję pod pętle for lub do niej wrzucić polecenie

Kopiuj
 SplashScreen1.Close();

to otrzymuję błędy.

Tu jest całość kodu

Kopiuj
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
using System.Threading;
using System.ComponentModel;

namespace RPad_2014_Ultimate
{
    /// <summary>
    /// Interaction logic for SplashScreen.xaml
    /// </summary>
    public partial class SplashScreen : Window
    {
        
        
        public SplashScreen()
        {
            InitializeComponent(); 
        }
        private void SplashScreen1_ContentRendered_1(object sender, EventArgs e)
        {
            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(100);
            }
            
           
        }

        void worker_ProgressChanged(object sender, ProgressChangedEventArgs e)
        {
            PG1.Value = e.ProgressPercentage;
        }  
    }
}
 
DW
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Lublin
  • Postów: 10
0

Może wykorzystać zdarzenie OnRunWorkerCompleted i w nim zamknąć okno?

Riw
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Gdynia
  • Postów: 201
0

Ok zamykam:
Wystarczyło dodać
funkcję do zdarzenia RunWorkerComplete do backgroundworker i tam wszystko wrzucić
Przepraszam za kłopot

DibbyDum
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Polska, Kraków
2
Kopiuj
worker.RunWorkerCompleted += WorkDone;
Kopiuj
      private void WorkDone(object sender, RunWorkerCompletedEventArgs e)
      {
         Close();
      }

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.