New WPF Step ProgressBar to Track Multi-Step Process | Syncfusion Blogs
Detailed Blog page Skeleton loader
New WPF Step ProgressBar to Track Multi-Step Process

Most desktop applications handle complicated tasks that are tracked in steps or checkpoints. To visualize the progress of these kinds of tasks in a WPF application, we’ve introduced a new WPF Step ProgressBar control in our 2020 Volume 3 release.

The Step ProgressBar control can be used to show the progress of a multiple-step process, such as new-user registration or package delivery status tracking. You can completely customize the appearance by changing the step shape, progress bar color, step template, and content template.

Let’s now briefly see the features of the WPF Step ProgressBar, and then I’ll walk you through the steps to add it to your application.

Key features of WPF Step ProgressBar

The key features of the WPF Step ProgressBar include:

Data binding

Data binding support in the WPF Step ProgressBar allows you to bind a collection of data models to the ItemSource property and control the last active item using the SelectedIndex property.

Data binding support in WPF Step ProgressBarStep shapes

The shape of a step marker can be a circle or square. You can also load custom templates for it.

Step shapesStatuses

The WPF Step ProgressBar supports the following statuses to show progress:

  • Active
  • Inactive
  • Indeterminate

Based on the status, you can customize the step marker. This means whenever the status of a step changes, the visual of the step will also be changed synchronously.
Statuses

Orientation

You can visualize the progress of a multiple-step process both horizontally and vertically.
Orientation

Customization

The WPF Step ProgressBar control allows you to customize each step based on its status using the MarkerTemplateSelector property. You can customize the content of each step using a data template.
Step ProgressBar Customization

Getting started with the WPF Step ProgressBar

Follow these steps to include the Step ProgressBar in your WPF application.

Step 1: Create a WPF application and install the following NuGet packages:

Step 2: Create a new view model class as demonstrated in the following code example. Here, we are going to use the Step ProgressBar to show the status of online semester fees payments.

/// <summary>
/// Represents the view model class.
/// </summary>
public class StepViewModel: INotifyPropertyChanged
{
   /// <summary>
   /// Represents the step view item collection.
   /// </summary>
     private ObservableCollection<string> stepViewItems;
        
   /// <summary>
   /// Initializes a new instance of the <see cref="StepViewModel"/> class.
   /// </summary>
   public StepViewModel()
   {
       this.StepViewItems = new ObservableCollection<string>();
       this.PopulateData();
   }

   /// <summary>
   /// Represents the property changed event.
   /// </summary>
   public event PropertyChangedEventHandler PropertyChanged;
        
   /// <summary>
   /// Gets or sets the step view collections.
   /// </summary>
   public ObservableCollection<string> StepViewItems
   {
      get
      {
          return this.stepViewItems;
      }

      set
       {
          this.stepViewItems = value;
          this.OnPropertyChanged(new PropertyChangedEventArgs(nameof(this.StepViewItems)));
        }
    }
       
    /// <summary>
    /// Represents the property changed.
    /// </summary>
    /// <param name="e">event args.</param>
    public void OnPropertyChanged(PropertyChangedEventArgs e)
    {
         this.PropertyChanged?.Invoke(this, e);
     }

     private void PopulateData()
     {
         this.StepViewItems.Add("StudentInfo");
         this.StepViewItems.Add("AcademicInfo");
         this.StepViewItems.Add("PaymentInfo");
     }
}

Step 3: Import the WPF schema namespace in the MainWindow.xaml file as demonstrated in the following code.

 xmlns:Syncfusion="http://schemas.syncfusion.com/wpf"

Step 4: Initialize the Step ProgressBar as demonstrated in the following code example.

<Window.DataContext>
     <local:StepViewModel />
</Window.DataContext>      
<Syncfusion:SfStepProgressBar
      ItemsSource="{Binding StepViewItems}"
      SelectedIndex="{Binding SelectedIndex}"
      SelectedItemStatus="Indeterminate" />
<!--  The code for frame navigation goes here.-->

Now, we have added the Step ProgressBar control to our WPF application. After executing the previous code example, we will get output like in the following screenshot.
Output

Resources

You can download the source code for this sample project from this GitHub repository.

Conclusion

We hope you now have a clear idea of the features and how to get started with the new WPF Step ProgressBar control. Refer to this UG documentation for more customization options. You can download the control in our 2020 Volume 3 release setup to check out these features.

If you have any questions about this control, please let us know in the comments section below. You can also contact us through our support forumDirect-Trac, or feedback portal. We are happy to assist you!

Be the first to get updates

Prakash Kumar D

Meet the Author

Prakash Kumar D

Prakash Kumar is a Product Manager at Syncfusion. He is passionate about building cross-platform mobile and WPF applications. He also loves working on File Format products and has been active since 2013.

Comments (4)

When will be included in Angular packages??

@ César Smerling  

Hi Cesar Smerling,

Thank you for your interest in Syncfusion products.

We have considered your request “StepProgressBar in Angular package” and it will be implemented by the 2021 volume 2 release

Regards,
Prakash Kumar

where can i download full source code this kind of project? please help me.

@ pol  

Hi Pol,

Thank you for your interest in Syncfusion products.

You can download the source code for this sample project from this GitHub repository. For more information, we request you to refer our StepProgressBar UG Documentation .

Regards,
Prakash Kumar

Comments are closed.