DSoft.WizardControl.WPF 3.0.2406.111

dotnet add package DSoft.WizardControl.WPF --version 3.0.2406.111
NuGet\Install-Package DSoft.WizardControl.WPF -Version 3.0.2406.111
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="DSoft.WizardControl.WPF" Version="3.0.2406.111" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add DSoft.WizardControl.WPF --version 3.0.2406.111
#r "nuget: DSoft.WizardControl.WPF, 3.0.2406.111"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install DSoft.WizardControl.WPF as a Cake Addin
#addin nuget:?package=DSoft.WizardControl.WPF&version=3.0.2406.111

// Install DSoft.WizardControl.WPF as a Cake Tool
#tool nuget:?package=DSoft.WizardControl.WPF&version=3.0.2406.111

Dsoft.WizardControl.WPF

Dsoft.WizardControl.WPF is a simple user control for WPF

It supports

  • Databiding
  • Multiple pages
  • Validation
  • Themeing

Getting Started

The WPF Wizard control is a UserControl based element and so it be used in other UserControl objects or directly in a Window

Install the Nuget package into you project via the Package Management 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 uses UserControl that implements the IWizardPage interface.

The Pages property of the WizardControl is expecting a 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

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:WizardCont}">
    <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 Compatible and additional computed target framework versions.
.NET net6.0-windows7.0 is compatible.  net6.0-windows10.0.18362 is compatible.  net7.0-windows was computed.  net8.0-windows was computed.  net8.0-windows7.0 is compatible.  net8.0-windows10.0.18362 is compatible. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

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.0.2406.111 65 6/11/2024
2.1.2301.104-prerelease 588 1/11/2023
2.1.2211.21 1,044 11/2/2022
2.1.2106.41 1,167 6/4/2021
2.0.2103.241 915 3/24/2021
2.0.2007.151 1,342 7/15/2020
2.0.2005.231 1,121 5/23/2020
2.0.2002.262-preview 939 2/26/2020
2.0.2002.261-preview 911 2/26/2020
2.0.2001.301-preview 969 1/30/2020
2.0.2001.212-preview 940 1/21/2020
2.0.2001.161-preview 917 1/16/2020
2.0.2001.151-preview 893 1/15/2020
1.3.2001.32 1,178 1/3/2020
1.3.1909.241 1,080 9/24/2019
1.3.1909.211 285 9/21/2019
1.3.1909.104 294 9/10/2019
1.3.0-preview1 1,017 8/2/2019
1.2.0 1,353 12/11/2018
1.1.0 1,472 7/13/2018
1.0.0 1,486 6/12/2018

Updated to add .NET 8.x support