syncfusion-wpf-step-progressbar
SKILL.md
Implementing WPF SfStepProgressBar
The SfStepProgressBar is a multi-step progress indicator for visualizing sequential workflows. Each step is a StepViewItem with active, inactive, or indeterminate status. Use it for order tracking, registration wizards, checkout flows, onboarding, or any process with discrete numbered stages.
When to Use This Skill
- User needs a step-by-step progress UI (wizard, checkout, order tracker)
- Displaying multiple stages with active/inactive/in-progress states
- Building vertical or horizontal step indicators with custom markers
- Binding steps from a data collection (MVVM / XML)
- Customizing marker shapes, connector colors, or step templates by status
Quick Start
<Window
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:Syncfusion="http://schemas.syncfusion.com/wpf"
x:Class="MyApp.MainWindow">
<Grid x:Name="grid">
<Syncfusion:SfStepProgressBar SelectedIndex="2" SelectedItemStatus="Indeterminate">
<Syncfusion:StepViewItem Content="Ordered" />
<Syncfusion:StepViewItem Content="Packed" />
<Syncfusion:StepViewItem Content="Shipped" />
<Syncfusion:StepViewItem Content="Delivered" />
</Syncfusion:SfStepProgressBar>
</Grid>
</Window>
using Syncfusion.UI.Xaml.ProgressBar;
SfStepProgressBar stepProgressBar = new SfStepProgressBar();
stepProgressBar.Items.Add(new StepViewItem { Content = "Ordered" });
stepProgressBar.Items.Add(new StepViewItem { Content = "Packed" });
stepProgressBar.Items.Add(new StepViewItem { Content = "Shipped" });
stepProgressBar.Items.Add(new StepViewItem { Content = "Delivered" });
stepProgressBar.SelectedIndex = 2;
stepProgressBar.SelectedItemStatus = StepStatus.Indeterminate;
grid.Children.Add(stepProgressBar);
SelectedIndex— zero-based index of the last active step (all steps before it become Active)SelectedItemStatus— status of the selected step:Active,Inactive, orIndeterminate
Documentation and Navigation Guide
Getting Started
📄 Read: references/getting-started.md
- NuGet package and assembly setup
- XAML namespace and schema import
- Basic step bar with 4 items
- Code-behind creation
- Applying SfSkinManager themes
Selected Item & Status
📄 Read: references/selected-item-and-status.md
- SelectedIndex — controlling which step is active
- SelectedItemStatus (Active / Inactive / Indeterminate)
- SelectedItemProgress — partial fill on the current step
- AnimationDuration — transition speed between steps
- MVVM binding patterns for dynamic step advancement
Appearance
📄 Read: references/appearance.md
- MarkerShapeType (Circle vs Square)
- Orientation (Horizontal vs Vertical)
- Connector color and thickness customization
- MarkerClicked event for click-to-navigate behavior
Layouts
📄 Read: references/layouts.md
- ItemsStretch: None / Fill / Auto
- ItemSpacing — gap in None mode
- MinimumItemSpacing — minimum gap in Fill mode
- Auto stretch for vertical content-driven sizing
Data Binding & Templates
📄 Read: references/data-binding-and-templates.md
- ItemsSource + ItemContainerStyle for MVVM binding
- XML data source binding
- ItemTemplate — custom step marker content
- ItemTemplateSelector — status-based template switching
- MarkerTemplateSelector — custom marker per step status
- SecondaryContentTemplate — labels below/beside markers
- SecondaryContentTemplateSelector
Key Properties
| Property | Type | Default | Purpose |
|---|---|---|---|
SelectedIndex |
int |
— | Zero-based index of last active step |
SelectedItemStatus |
StepStatus |
Inactive |
Status of the selected step |
SelectedItemProgress |
double |
100 |
Partial fill % on the selected step |
AnimationDuration |
TimeSpan |
500ms |
Step transition animation speed |
Orientation |
Orientation |
Horizontal |
Horizontal or vertical layout |
MarkerShapeType |
MarkerShapeType |
Circle |
Circle or Square step markers |
ActiveConnectorColor |
Brush |
— | Color of connector between active steps |
ConnectorColor |
Brush |
— | Color of connector between inactive steps |
ConnectorThickness |
double |
— | Thickness of connector lines |
ItemsStretch |
ItemsStretch |
None |
How items fill available space |
ItemSpacing |
double |
80 |
Space between steps (None stretch) |
Common Use Cases
- Order tracking: 4-step bar (Ordered → Packed → Shipped → Delivered) with
SelectedItemStatus="Indeterminate"for the in-transit step - Registration wizard: Vertical orientation with
ItemsStretch="Fill"to fill the panel height - Onboarding flow: Custom
MarkerTemplateSelectorto show checkmarks on completed steps and spinner on current - MVVM dashboard:
ItemsSourcebound toObservableCollection<StepItem>withSelectedIndexbound to a command
Weekly Installs
4
Repository
syncfusion/wpf-…s-skillsFirst Seen
Today
Security Audits
Installed on
opencode4
gemini-cli4
deepagents4
antigravity4
claude-code4
github-copilot4