DSoft.WizardControl.WPF
3.1.2606.181
dotnet add package DSoft.WizardControl.WPF --version 3.1.2606.181
NuGet\Install-Package DSoft.WizardControl.WPF -Version 3.1.2606.181
<PackageReference Include="DSoft.WizardControl.WPF" Version="3.1.2606.181" />
<PackageVersion Include="DSoft.WizardControl.WPF" Version="3.1.2606.181" />
<PackageReference Include="DSoft.WizardControl.WPF" />
paket add DSoft.WizardControl.WPF --version 3.1.2606.181
#r "nuget: DSoft.WizardControl.WPF, 3.1.2606.181"
#:package DSoft.WizardControl.WPF@3.1.2606.181
#addin nuget:?package=DSoft.WizardControl.WPF&version=3.1.2606.181
#tool nuget:?package=DSoft.WizardControl.WPF&version=3.1.2606.181
DSoft.WizardControl.WPF
DSoft.WizardControl.WPF is a simple, customisable wizard UserControl for WPF, targeting .NET 10 (net10.0-windows7.0 and net10.0-windows10.0.18362).
It supports
- Databinding
- Multiple pages
- Validation
- Theming
The shared, UI-agnostic types (IWizardPage, WizardPageConfiguration, enums, event args) live in the DSoft.WizardControl.Core package, which this package depends on.
Getting Started
The WPF Wizard control is a UserControl based element, so it can be used inside other UserControl objects or directly in a Window.
Install the NuGet package into your project via the Package Manager Console
Install-Package Dsoft.WizardControl.WPF
Or install it via the Visual Studio NuGet Manager
In your Window or UserControl add a new namespace
xmlns:wizard="clr-namespace:Dsoft.WizardControl.WPF;assembly=DSoft.WizardControl.WPF"
Then you can add the WizardControl to the xaml
<Grid>
<wizard:WizardControl
Title="{Binding Title}"
Pages="{Binding Pages}"
CancelCommand="{Binding CancelCommand}"
FinishCommand="{Binding FinishCommand}"/>
</Grid
Pages
The WizardControl hosts UserControl pages that implement the IWizardPage interface. IWizardPage exposes a WizardPageConfiguration PageConfig (per-page title, CanGoBack, IsHidden, HideButtons, plus NavigationHandler / OnPageShownHandler callbacks) and a Task<bool> ValidateAsync() method.
The Pages property of the WizardControl is expecting an ObservableCollection<IWizardPage> object which can be databound to a viewmodel or provided explicitly.
The Title, CancelCommand and FinishCommand can also be databound or provided explicitly.
Below is an example ViewModel using System.Mvvm
public class MainWindowViewModel : ViewModel
{
public string Title
{
get { return _title; }
set { _title = value; NotifyPropertyChanged("Title"); }
}
public ObservableCollection<IWizardPage> Pages
{
get { return _pages; }
set { _pages = value; NotifyPropertyChanged("Pages"); }
}
public ICommand CancelCommand
{
get
{
return new DelegateCommand(() =>
{
MessageBox.Show("Bye!");
OnRequestCloseWindow?.Invoke(this, false);
});
}
}
public ICommand FinishCommand
{
get
{
return new DelegateCommand(() =>
{
MessageBox.Show("Fin!");
OnRequestCloseWindow?.Invoke(this, false);
});
}
}
}
Theming
The appearance of the WizardControl header can be modified by overriding the theme
You can also change the ButtonStyle in the same way. Whilst ButtonStyle can be used to assign one button style to all visible buttons,
individual button styles can be set as well. For individual button styles use code-behind,
e.g. wizard.UpdateButtonStyle(ButtonType.Next, "WizardRedButtonStyle"); or via property binding, e.g. NextButtonStyle="{StaticResource WizardRedButtonStyle}".
Example styling xaml that can be added to the App.xaml or other xaml resource file
xmlns:wizcont="clr-namespace:Dsoft.WizardControl.WPF;assembly=DSoft.WizardControl.WPF"
<Style TargetType="{x:Type wizcont:WizardControl}">
<Setter Property="ButtonStyle" Value="{StaticResource AccentedSquareButtonStyle}" />
</Style>
<Style TargetType="{x:Type wizcont:WizardControl}">
<Setter Property="HeaderTemplate">
<Setter.Value>
<DataTemplate>
<StackPanel VerticalAlignment="Center" Orientation="Vertical" Margin="5">
<TextBlock Text="{Binding Title,FallbackValue=Heading}" FontSize="36" Foreground="{StaticResource AccentColorBrush}"/>
<TextBlock Text="{Binding SubTitle,FallbackValue=SubHeading}" FontSize="12" Foreground="Gray"/>
</StackPanel>
</DataTemplate>
</Setter.Value>
</Setter>
</Style>
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0-windows7.0 is compatible. net10.0-windows10.0.18362 is compatible. |
-
net10.0-windows10.0.18362
- DSoft.WizardControl.Core (>= 3.1.2606.181)
-
net10.0-windows7.0
- DSoft.WizardControl.Core (>= 3.1.2606.181)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 3.1.2606.181 | 41 | 6/18/2026 |
| 3.0.2502.61 | 404 | 2/6/2025 |
| 3.0.2411.191 | 256 | 11/19/2024 |
| 3.0.2406.111 | 294 | 6/11/2024 |
| 2.1.2301.104-prerelease | 799 | 1/11/2023 |
| 2.1.2211.21 | 1,298 | 11/2/2022 |
| 2.1.2106.41 | 1,420 | 6/4/2021 |
| 2.0.2103.241 | 1,184 | 3/24/2021 |
| 2.0.2007.151 | 1,628 | 7/15/2020 |
| 2.0.2005.231 | 1,395 | 5/23/2020 |
| 2.0.2002.262-preview | 1,211 | 2/26/2020 |
| 2.0.2002.261-preview | 1,192 | 2/26/2020 |
| 2.0.2001.301-preview | 1,231 | 1/30/2020 |
| 2.0.2001.212-preview | 1,202 | 1/21/2020 |
| 2.0.2001.161-preview | 1,183 | 1/16/2020 |
| 2.0.2001.151-preview | 1,137 | 1/15/2020 |
| 1.3.2001.32 | 1,468 | 1/3/2020 |
| 1.3.1909.241 | 1,384 | 9/24/2019 |
| 1.3.1909.211 | 533 | 9/21/2019 |
| 1.3.1909.104 | 538 | 9/10/2019 |
Added .NET 10 support and removed support for .NET 6, 8 and 9