All the controls missing in WPF. Over 1 million downloads.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

363 lines
11 KiB

/*************************************************************************************
Toolkit for WPF
Copyright (C) 2007-2025 Xceed Software Inc.
This program is provided to you under the terms of the XCEED SOFTWARE, INC.
COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at
https://github.com/xceedsoftware/wpftoolkit/blob/master/license.md
For more features, controls, and fast professional support,
pick up the Plus Edition at https://xceed.com/xceed-toolkit-plus-for-wpf/
Stay informed: follow @datagrid on Twitter or Like http://facebook.com/datagrids
***********************************************************************************/
using System.Windows;
using System.Windows.Controls;
using System.Windows.Media;
using System;
using System.Windows.Input;
namespace Xceed.Wpf.Toolkit
{
public class WizardPage : ContentControl
{
#region Properties
public static readonly DependencyProperty BackButtonVisibilityProperty = DependencyProperty.Register( "BackButtonVisibility", typeof( WizardPageButtonVisibility ), typeof( WizardPage ), new UIPropertyMetadata( WizardPageButtonVisibility.Inherit ) );
public WizardPageButtonVisibility BackButtonVisibility
{
get
{
return ( WizardPageButtonVisibility )GetValue( BackButtonVisibilityProperty );
}
set
{
SetValue( BackButtonVisibilityProperty, value );
}
}
public static readonly DependencyProperty CanCancelProperty = DependencyProperty.Register( "CanCancel", typeof( bool? ), typeof( WizardPage ), new UIPropertyMetadata( null ) );
public bool? CanCancel
{
get
{
return ( bool? )GetValue( CanCancelProperty );
}
set
{
SetValue( CanCancelProperty, value );
}
}
public static readonly DependencyProperty CancelButtonVisibilityProperty = DependencyProperty.Register( "CancelButtonVisibility", typeof( WizardPageButtonVisibility ), typeof( WizardPage ), new UIPropertyMetadata( WizardPageButtonVisibility.Inherit ) );
public WizardPageButtonVisibility CancelButtonVisibility
{
get
{
return ( WizardPageButtonVisibility )GetValue( CancelButtonVisibilityProperty );
}
set
{
SetValue( CancelButtonVisibilityProperty, value );
}
}
public static readonly DependencyProperty CanFinishProperty = DependencyProperty.Register( "CanFinish", typeof( bool? ), typeof( WizardPage ), new UIPropertyMetadata( null ) );
public bool? CanFinish
{
get
{
return ( bool? )GetValue( CanFinishProperty );
}
set
{
SetValue( CanFinishProperty, value );
}
}
public static readonly DependencyProperty CanHelpProperty = DependencyProperty.Register( "CanHelp", typeof( bool? ), typeof( WizardPage ), new UIPropertyMetadata( null ) );
public bool? CanHelp
{
get
{
return ( bool? )GetValue( CanHelpProperty );
}
set
{
SetValue( CanHelpProperty, value );
}
}
public static readonly DependencyProperty CanSelectNextPageProperty = DependencyProperty.Register( "CanSelectNextPage", typeof( bool? ), typeof( WizardPage ), new UIPropertyMetadata( null ) );
public bool? CanSelectNextPage
{
get
{
return ( bool? )GetValue( CanSelectNextPageProperty );
}
set
{
SetValue( CanSelectNextPageProperty, value );
}
}
public static readonly DependencyProperty CanSelectPreviousPageProperty = DependencyProperty.Register( "CanSelectPreviousPage", typeof( bool? ), typeof( WizardPage ), new UIPropertyMetadata( null ) );
public bool? CanSelectPreviousPage
{
get
{
return ( bool? )GetValue( CanSelectPreviousPageProperty );
}
set
{
SetValue( CanSelectPreviousPageProperty, value );
}
}
public static readonly DependencyProperty DescriptionProperty = DependencyProperty.Register( "Description", typeof( string ), typeof( WizardPage ) );
public string Description
{
get
{
return ( string )base.GetValue( DescriptionProperty );
}
set
{
base.SetValue( DescriptionProperty, value );
}
}
public static readonly DependencyProperty ExteriorPanelBackgroundProperty = DependencyProperty.Register( "ExteriorPanelBackground", typeof( Brush ), typeof( WizardPage ), new UIPropertyMetadata( null ) );
public Brush ExteriorPanelBackground
{
get
{
return ( Brush )GetValue( ExteriorPanelBackgroundProperty );
}
set
{
SetValue( ExteriorPanelBackgroundProperty, value );
}
}
public static readonly DependencyProperty ExteriorPanelContentProperty = DependencyProperty.Register( "ExteriorPanelContent", typeof( object ), typeof( WizardPage ), new UIPropertyMetadata( null ) );
public object ExteriorPanelContent
{
get
{
return ( object )GetValue( ExteriorPanelContentProperty );
}
set
{
SetValue( ExteriorPanelContentProperty, value );
}
}
public static readonly DependencyProperty FinishButtonVisibilityProperty = DependencyProperty.Register( "FinishButtonVisibility", typeof( WizardPageButtonVisibility ), typeof( WizardPage ), new UIPropertyMetadata( WizardPageButtonVisibility.Inherit ) );
public WizardPageButtonVisibility FinishButtonVisibility
{
get
{
return ( WizardPageButtonVisibility )GetValue( FinishButtonVisibilityProperty );
}
set
{
SetValue( FinishButtonVisibilityProperty, value );
}
}
public static readonly DependencyProperty HeaderBackgroundProperty = DependencyProperty.Register( "HeaderBackground", typeof( Brush ), typeof( WizardPage ), new UIPropertyMetadata( Brushes.White ) );
public Brush HeaderBackground
{
get
{
return ( Brush )GetValue( HeaderBackgroundProperty );
}
set
{
SetValue( HeaderBackgroundProperty, value );
}
}
public static readonly DependencyProperty HeaderImageProperty = DependencyProperty.Register( "HeaderImage", typeof( ImageSource ), typeof( WizardPage ), new UIPropertyMetadata( null ) );
public ImageSource HeaderImage
{
get
{
return ( ImageSource )GetValue( HeaderImageProperty );
}
set
{
SetValue( HeaderImageProperty, value );
}
}
public static readonly DependencyProperty HelpButtonVisibilityProperty = DependencyProperty.Register( "HelpButtonVisibility", typeof( WizardPageButtonVisibility ), typeof( WizardPage ), new UIPropertyMetadata( WizardPageButtonVisibility.Inherit ) );
public WizardPageButtonVisibility HelpButtonVisibility
{
get
{
return ( WizardPageButtonVisibility )GetValue( HelpButtonVisibilityProperty );
}
set
{
SetValue( HelpButtonVisibilityProperty, value );
}
}
public static readonly DependencyProperty NextButtonVisibilityProperty = DependencyProperty.Register( "NextButtonVisibility", typeof( WizardPageButtonVisibility ), typeof( WizardPage ), new UIPropertyMetadata( WizardPageButtonVisibility.Inherit ) );
public WizardPageButtonVisibility NextButtonVisibility
{
get
{
return ( WizardPageButtonVisibility )GetValue( NextButtonVisibilityProperty );
}
set
{
SetValue( NextButtonVisibilityProperty, value );
}
}
public static readonly DependencyProperty NextPageProperty = DependencyProperty.Register( "NextPage", typeof( WizardPage ), typeof( WizardPage ), new UIPropertyMetadata( null ) );
public WizardPage NextPage
{
get
{
return ( WizardPage )GetValue( NextPageProperty );
}
set
{
SetValue( NextPageProperty, value );
}
}
public static readonly DependencyProperty PageTypeProperty = DependencyProperty.Register( "PageType", typeof( WizardPageType ), typeof( WizardPage ), new UIPropertyMetadata( WizardPageType.Exterior ) );
public WizardPageType PageType
{
get
{
return ( WizardPageType )GetValue( PageTypeProperty );
}
set
{
SetValue( PageTypeProperty, value );
}
}
public static readonly DependencyProperty PreviousPageProperty = DependencyProperty.Register( "PreviousPage", typeof( WizardPage ), typeof( WizardPage ), new UIPropertyMetadata( null ) );
public WizardPage PreviousPage
{
get
{
return ( WizardPage )GetValue( PreviousPageProperty );
}
set
{
SetValue( PreviousPageProperty, value );
}
}
public static readonly DependencyProperty TitleProperty = DependencyProperty.Register( "Title", typeof( string ), typeof( WizardPage ) );
public string Title
{
get
{
return ( string )base.GetValue( TitleProperty );
}
set
{
base.SetValue( TitleProperty, value );
}
}
#endregion //Properties
#region Constructors
static WizardPage()
{
DefaultStyleKeyProperty.OverrideMetadata( typeof( WizardPage ), new FrameworkPropertyMetadata( typeof( WizardPage ) ) );
}
public WizardPage()
{
this.Loaded += new RoutedEventHandler( WizardPage_Loaded );
this.Unloaded += new RoutedEventHandler( WizardPage_Unloaded );
}
void WizardPage_Unloaded( object sender, RoutedEventArgs e )
{
base.RaiseEvent( new RoutedEventArgs( WizardPage.LeaveEvent, this ) );
}
void WizardPage_Loaded( object sender, RoutedEventArgs e )
{
if( this.IsVisible )
{
base.RaiseEvent( new RoutedEventArgs( WizardPage.EnterEvent, this ) );
}
}
#endregion //Constructors
#region Overrides
protected override void OnPropertyChanged( DependencyPropertyChangedEventArgs e )
{
base.OnPropertyChanged( e );
if( ( e.Property.Name == "CanSelectNextPage" ) || ( e.Property.Name == "CanHelp" ) || ( e.Property.Name == "CanFinish" )
|| ( e.Property.Name == "CanCancel" ) || ( e.Property.Name == "CanSelectPreviousPage" ) )
{
CommandManager.InvalidateRequerySuggested();
}
}
#endregion
#region Events
#region Enter Event
public static readonly RoutedEvent EnterEvent = EventManager.RegisterRoutedEvent( "Enter", RoutingStrategy.Bubble, typeof( EventHandler ), typeof( WizardPage ) );
public event RoutedEventHandler Enter
{
add
{
AddHandler( EnterEvent, value );
}
remove
{
RemoveHandler( EnterEvent, value );
}
}
#endregion //Enter Event
#region Leave Event
public static readonly RoutedEvent LeaveEvent = EventManager.RegisterRoutedEvent( "Leave", RoutingStrategy.Bubble, typeof( EventHandler ), typeof( WizardPage ) );
public event RoutedEventHandler Leave
{
add
{
AddHandler( LeaveEvent, value );
}
remove
{
RemoveHandler( LeaveEvent, value );
}
}
#endregion //Leave Event
#endregion //Events
}
}