0% found this document useful (0 votes)
69 views

Timer in WPF

This article demonstrates how to create a timer in WPF using the DispatchTimer class. The DispatchTimer class is used to add timer functionality since WPF does not have a Timer control. The article creates a DispatchTimer that updates a ListBox every second with the current time. The DispatchTimer's Tick event is set to occur every second and updates the ListBox by adding the current time and selecting the new item. This provides a simple timer functionality in WPF without using a Timer control.

Uploaded by

Abhi
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
69 views

Timer in WPF

This article demonstrates how to create a timer in WPF using the DispatchTimer class. The DispatchTimer class is used to add timer functionality since WPF does not have a Timer control. The article creates a DispatchTimer that updates a ListBox every second with the current time. The DispatchTimer's Tick event is set to occur every second and updates the ListBox by adding the current time and selecting the new item. This provides a simple timer functionality in WPF without using a Timer control.

Uploaded by

Abhi
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 3

Timer in WPF

This article demonstrates how to implement timer in WPF using the DispatchTimer class. In this article and the attached project, I am going to create a WPF application that has a ListBox control and this control is being updated every second with current time. The application looks like Figure 1.

Figure 1

Creating a DispatchTimer
XAML does not support any timer feature and WPF does not have a Timer control or class. The DispatchTimer class defined in the System.Windows.Threading namespace is used to add timer functionality in WPF. The following code snippet creates a DispatchTimer object.
DispatcherTimer dispatcherTimer = new DispatcherTimer();

Setting Tick and Interval


The Tick event handler executes when a DispatchTimer is started on a given Interval. The following code snippet sets the Tick and Interval of a DispatchTimer.
dispatcherTimer.Tick += new EventHandler(dispatcherTimer_Tick);

dispatcherTimer.Interval = new TimeSpan(0, 0, 1);

Start DispatchTimer
The Start method is used to start a DispatchTimer.
dispatcherTimer.Start();

Complete Code Example


The code snippet in Listing 1 creates a DispatchTimer, sets its Tick event and Interval property and calls its Start method. The Start method starts the timer and the Tick event handler is executed on the given Interval value. In this code, on the Tick event handler, I update a ListBox control and add the current time. I also set the selected item of the ListBox to the currently added item and make sure this item is visible in the ListView.

private void Window_Loaded(object sender, RoutedEventArgs e) { DispatcherTimer dispatcherTimer = new DispatcherTimer(); dispatcherTimer.Tick += new EventHandler(dispatcherTimer_Tick); dispatcherTimer.Interval = new TimeSpan(0, 0, 1); dispatcherTimer.Start(); }

private void dispatcherTimer_Tick(object sender, EventArgs e) { listBox1.Items.Add(DateTime.Now.Hour.ToString() + ":" + DateTime.Now.Second.ToString());

CommandManager.InvalidateRequerySuggested(); listBox1.Items.MoveCurrentToLast(); listBox1.SelectedItem = listBox1.Items.CurrentItem; listBox1.ScrollIntoView(listBox1.Items.CurrentItem); }

Listing 1

Summary
In this article, I discussed how we can create a DispatchTimer control to build timer applications in WPF and C#. We saw, how to update a ListBox control every second with the current time.
Comment Request!
Thank you for reading this post. Please post your feedback, question, or comments about this post Here.

You might also like