Home > DeveloperSection > Forums > WPF Progressbar
Simons Hood
Simons Hood

Total Post:70

Posted on    September-24-2013 8:39 AM


 1 Reply(s)
 1625  View(s)
Rate this:

In my WPF application i have to show a progressbar progress with in a timer tick event, which i am writing as below,

System.Windows.Forms.Timer timer;

public MainWindow()


    timer = new System.Windows.Forms.Timer();

    timer.Interval = 1000;

    this.timer.Tick += new System.EventHandler(this.timer_Tick);


load event as below

private void Window_Loaded(object sender, RoutedEventArgs e)


      progressBar1.Minimum = 0;

      progressBar1.Value = DateTime.Now.Second;

      progressBar1.Maximum = 700;



And at last in tick event,

private void timer_Tick(object sender, EventArgs e)


    Duration duration = new Duration(TimeSpan.FromSeconds(20));

    //progress bar animation

    System.Windows.Media.Animation.DoubleAnimation doubleanimation = new    System.Windows.Media.Animation.DoubleAnimation(200.0, duration);

    progressBar1.BeginAnimation(ProgressBar.ValueProperty, doubleanimation);


When i execute my program progressbar shows the progress for two-three bars and then it stops increment. Later there is no effect in the progress at all. What went wrong in my code. Please help!..

Pravesh Singh

Total Post:412

Posted on    September-24-2013 8:55 AM

Hi Samuel,

In my WPF application I have ... System.Windows.Forms.Timer timer;

That is the wrong type of timer. Use a DispatcherTimer instead.

When i execute my program progressbar shows the progress for two-three bars and then it stops

This surprises me, I wouldn't have expected it to work at all. This means you may have oher problems too, like blocking the main (dispatcher) thread.

You are only setting the Value once, in the Loaded event:

     progressBar1.Value = DateTime.Now.Second;

There is no change to progressBar1.Value in the Tick event. So it figures that it stops moving.

Don't want to miss updates? Please click the below button!

Follow MindStick