diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock.Themes.Aero/Properties/AssemblyInfo.cs b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock.Themes.Aero/Properties/AssemblyInfo.cs
index 0b939ab2..01a5795a 100644
--- a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock.Themes.Aero/Properties/AssemblyInfo.cs
+++ b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock.Themes.Aero/Properties/AssemblyInfo.cs
@@ -31,7 +31,7 @@ using System;
[assembly: AssemblyCompany( "Xceed Software Inc." )]
[assembly: AssemblyProduct( "Xceed Toolkit for WPF - AvalonDock" )]
-[assembly: AssemblyCopyright( "Copyright (C) Xceed Software Inc. 2007-2025" )]
+[assembly: AssemblyCopyright( "Copyright (C) Xceed Software Inc. 2007-2026" )]
diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock.Themes.Aero/Theme.xaml b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock.Themes.Aero/Theme.xaml
index b8f64b4f..64d522ec 100644
--- a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock.Themes.Aero/Theme.xaml
+++ b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.AvalonDock.Themes.Aero/Theme.xaml
@@ -47,6 +47,97 @@
+
+
+
+
+
+
+
-
diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/CollectionControl/Implementation/CollectionControlDialog.xaml.cs b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/CollectionControl/Implementation/CollectionControlDialog.xaml.cs
index f2afe8dc..d7d89cc6 100644
--- a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/CollectionControl/Implementation/CollectionControlDialog.xaml.cs
+++ b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/CollectionControl/Implementation/CollectionControlDialog.xaml.cs
@@ -232,9 +232,7 @@ namespace Xceed.Wpf.Toolkit
Debug.Assert( result != null );
if( result != null )
{
- PropertyInfo[] propertyInfos = typeof( ICollection ).IsAssignableFrom( sourceType )
- ? sourceType.GetProperties( BindingFlags.Instance | BindingFlags.Public )
- : sourceType.GetProperties( BindingFlags.Instance | BindingFlags.Public | BindingFlags.DeclaredOnly );
+ PropertyInfo[] propertyInfos = sourceType.GetProperties( BindingFlags.Instance | BindingFlags.Public );
foreach( var propertyInfo in propertyInfos )
{
diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/ColorPicker/Implementation/ColorPicker.cs b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/ColorPicker/Implementation/ColorPicker.cs
index 5940f037..1536a71f 100644
--- a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/ColorPicker/Implementation/ColorPicker.cs
+++ b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/ColorPicker/Implementation/ColorPicker.cs
@@ -657,6 +657,35 @@ namespace Xceed.Wpf.Toolkit
#endregion //UsingAlphaChannel
+ #region CornerRadius
+
+ public static readonly DependencyProperty CornerRadiusProperty = DependencyProperty.Register( nameof( CornerRadius ), typeof( CornerRadius ), typeof( ColorPicker ), new FrameworkPropertyMetadata( new CornerRadius(), FrameworkPropertyMetadataOptions.BindsTwoWayByDefault, new PropertyChangedCallback( OnCornerRadiusPropertyChanged ) ) );
+ public CornerRadius CornerRadius
+ {
+ get
+ {
+ return ( CornerRadius )GetValue( CornerRadiusProperty );
+ }
+ set
+ {
+ SetValue( CornerRadiusProperty, value );
+ }
+ }
+
+ private static void OnCornerRadiusPropertyChanged( DependencyObject d, DependencyPropertyChangedEventArgs e )
+ {
+ ColorPicker colorPicker = ( ColorPicker )d;
+ if( colorPicker != null )
+ colorPicker.OnCornerRadiusChanged();
+ }
+
+ protected virtual void OnCornerRadiusChanged()
+ {
+ }
+
+ #endregion //CornerRadius
+
+
#endregion //Properties
#region Constructors
diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/ColorPicker/Themes/Aero2.NormalColor.xaml b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/ColorPicker/Themes/Aero2.NormalColor.xaml
index 5fda4800..737bd595 100644
--- a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/ColorPicker/Themes/Aero2.NormalColor.xaml
+++ b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/ColorPicker/Themes/Aero2.NormalColor.xaml
@@ -19,6 +19,7 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:Xceed.Wpf.Toolkit"
xmlns:conv="clr-namespace:Xceed.Wpf.Toolkit.Core.Converters"
+ xmlns:core="clr-namespace:Xceed.Wpf.Toolkit.Core"
xmlns:themes="clr-namespace:Xceed.Wpf.Toolkit.Themes"
xmlns:sys="clr-namespace:System;assembly=mscorlib"
xmlns:chrome="clr-namespace:Xceed.Wpf.Toolkit.Chromes">
@@ -133,8 +134,10 @@
-
@@ -147,7 +150,7 @@
+
+
+
+ VerticalAlignment="{Binding VerticalContentAlignment, RelativeSource={RelativeSource AncestorType={x:Type ItemsControl}}}" />
@@ -296,15 +305,17 @@
+ Value="AliceBlue" />
+ Value="{StaticResource PanelBackgroundBrush}" />
+
+ Value="#FFF0F0F0" />
@@ -320,7 +331,8 @@
Padding="{TemplateBinding Padding}"
IsChecked="{Binding IsOpen, RelativeSource={RelativeSource TemplatedParent}, Mode=TwoWay}"
IsHitTestVisible="{Binding IsOpen, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource InverseBoolConverter}}"
- Style="{TemplateBinding ButtonStyle}">
+ Style="{TemplateBinding ButtonStyle}"
+ core:AppearanceProperties.OuterCornerRadius="{Binding CornerRadius, RelativeSource={RelativeSource TemplatedParent}}">
diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/ColorPicker/Themes/Generic.xaml b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/ColorPicker/Themes/Generic.xaml
index c709428d..a72cb9ec 100644
--- a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/ColorPicker/Themes/Generic.xaml
+++ b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/ColorPicker/Themes/Generic.xaml
@@ -18,6 +18,7 @@
@@ -173,8 +174,10 @@
-
@@ -187,7 +190,7 @@
+
+
+
+
+ StartPoint="0.5,0">
+ Style="{TemplateBinding ButtonStyle}"
+ core:AppearanceProperties.OuterCornerRadius="{Binding CornerRadius, RelativeSource={RelativeSource TemplatedParent}}">
@@ -379,7 +391,7 @@
BorderThickness="1"
BorderBrush="#FFC9CACA" />
+ VerticalAlignment="Center">
@@ -441,12 +453,12 @@
Background="{TemplateBinding HeaderBackground}"
Foreground="{TemplateBinding HeaderForeground}"
Padding="2"
- Margin="0,0,0,1" >
+ Margin="0,0,0,1">
+ Style="{StaticResource ColorListStyle}">
@@ -463,12 +475,12 @@
Background="{TemplateBinding HeaderBackground}"
Foreground="{TemplateBinding HeaderForeground}"
Padding="2"
- Margin="0,1,0,1" >
+ Margin="0,1,0,1">
+ Style="{StaticResource ColorListStyle}">
@@ -486,12 +498,12 @@
Background="{TemplateBinding HeaderBackground}"
Foreground="{TemplateBinding HeaderForeground}"
Padding="2"
- Margin="0,1,0,1" >
+ Margin="0,1,0,1">
+ Style="{StaticResource ColorListStyle}">
diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/Core/AppearanceProperties.cs b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/Core/AppearanceProperties.cs
new file mode 100644
index 00000000..1d1c32f3
--- /dev/null
+++ b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/Core/AppearanceProperties.cs
@@ -0,0 +1,113 @@
+/*************************************************************************************
+
+ 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.Media;
+using System.Windows;
+
+namespace Xceed.Wpf.Toolkit.Core
+{
+ public class AppearanceProperties
+ {
+ #region OuterCornerRadiusProperty
+
+ public static CornerRadius GetOuterCornerRadius( DependencyObject obj )
+ {
+ return ( CornerRadius )obj.GetValue( OuterCornerRadiusProperty );
+ }
+
+ public static void SetOuterCornerRadius( DependencyObject obj, CornerRadius value )
+ {
+ obj.SetValue( OuterCornerRadiusProperty, value );
+ }
+
+ public static readonly DependencyProperty OuterCornerRadiusProperty =
+ DependencyProperty.RegisterAttached(
+ "OuterCornerRadius",
+ typeof( CornerRadius ),
+ typeof( AppearanceProperties ),
+ new FrameworkPropertyMetadata( new CornerRadius( 0.0 ) ) );
+
+ #endregion OuterCornerRadiusProperty
+
+
+ #region ContentMarginProperty
+
+ public static Thickness GetContentMargin( DependencyObject obj )
+ {
+ return ( Thickness )obj.GetValue( ContentMarginProperty );
+ }
+
+ public static void SetContentMargin( DependencyObject obj, Thickness value )
+ {
+ obj.SetValue( ContentMarginProperty, value );
+ }
+
+ public static readonly DependencyProperty ContentMarginProperty =
+ DependencyProperty.RegisterAttached(
+ "ContentMargin",
+ typeof( Thickness ),
+ typeof( AppearanceProperties ),
+ new FrameworkPropertyMetadata( new Thickness( 0.0 ) ) );
+
+ #endregion InnerBorderThicknessProperty
+
+
+ #region HeaderForegroundProperty
+
+ public static Brush GetHeaderForeground( DependencyObject obj )
+ {
+ return ( Brush )obj.GetValue( HeaderForegroundProperty );
+ }
+
+ public static void SetHeaderForeground( DependencyObject obj, Brush value )
+ {
+ obj.SetValue( HeaderForegroundProperty, value );
+ }
+
+ public static readonly DependencyProperty HeaderForegroundProperty =
+ DependencyProperty.RegisterAttached(
+ "HeaderForeground",
+ typeof( Brush ),
+ typeof( AppearanceProperties ),
+ new FrameworkPropertyMetadata( ( Brush )( new SolidColorBrush( Colors.Black ).GetAsFrozen() ) ) );
+
+ #endregion HeaderForegroundProperty
+
+
+ #region HeaderFontWeightProperty
+
+ public static FontWeight GetHeaderFontWeight( DependencyObject obj )
+ {
+ return ( FontWeight )obj.GetValue( HeaderFontWeightProperty );
+ }
+
+ public static void SetHeaderFontWeight( DependencyObject obj, FontWeight value )
+ {
+ obj.SetValue( HeaderFontWeightProperty, value );
+ }
+
+ public static readonly DependencyProperty HeaderFontWeightProperty =
+ DependencyProperty.RegisterAttached(
+ "HeaderFontWeight",
+ typeof( FontWeight ),
+ typeof( AppearanceProperties ),
+ new FrameworkPropertyMetadata( FontWeights.Normal ) );
+
+ #endregion HeaderFontWeightProperty
+ }
+
+}
diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/Core/Converters/CornerRadiusReplacementConverter.cs b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/Core/Converters/CornerRadiusReplacementConverter.cs
new file mode 100644
index 00000000..c967419e
--- /dev/null
+++ b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/Core/Converters/CornerRadiusReplacementConverter.cs
@@ -0,0 +1,151 @@
+/*************************************************************************************
+
+ 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.Globalization;
+using System.Windows.Data;
+using System.Windows.Markup;
+using System.Windows;
+using System;
+
+namespace Xceed.Wpf.Toolkit.Core.Converters
+{
+ public class CornerRadiusReplacementConverter : MarkupExtension, IValueConverter
+ {
+
+ public const string Auto = "Auto";
+
+ #region Constructors
+
+ public CornerRadiusReplacementConverter()
+ {
+ }
+
+ public CornerRadiusReplacementConverter(
+ object topLeft,
+ object topRight,
+ object bottomRight,
+ object bottomLeft )
+ {
+ this.TopLeft = topLeft;
+ this.TopRight = topRight;
+ this.BottomRight = bottomRight;
+ this.BottomLeft = bottomLeft;
+ }
+
+ #endregion Constructors
+
+ #region Properties
+
+ public object TopLeft { get; set; } = Auto;
+
+ public object TopRight { get; set; } = Auto;
+
+ public object BottomRight { get; set; } = Auto;
+
+ public object BottomLeft { get; set; } = Auto;
+
+ #endregion Properties
+
+ #region Implement IValueConverter
+
+ public object Convert( object value, Type targetType, object parameter, CultureInfo culture )
+ {
+ if( value is CornerRadius )
+ {
+ CornerRadius source = ( CornerRadius )value;
+
+ return new CornerRadius(
+ GetValue( this.TopLeft, source, source.TopLeft ),
+ GetValue( this.TopRight, source, source.TopRight ),
+ GetValue( this.BottomRight, source, source.BottomRight ),
+ GetValue( this.BottomLeft, source, source.BottomLeft ) );
+ }
+ else if( value is double || value is int )
+ {
+ CornerRadius source = new CornerRadius( System.Convert.ToDouble( value ) );
+
+ return new CornerRadius(
+ this.GetValue( this.TopLeft, source, source.TopLeft ),
+ this.GetValue( this.TopRight, source, source.TopRight ),
+ this.GetValue( this.BottomRight, source, source.BottomRight ),
+ this.GetValue( this.BottomLeft, source, source.BottomLeft ) );
+ }
+
+ return new CornerRadius( 0 );
+ }
+
+ public object ConvertBack( object value, Type targetType, object parameter, CultureInfo culture )
+ {
+ throw new NotImplementedException();
+ }
+
+ #endregion Implement IValueConverter
+
+ #region Implement MarkupExtension
+
+ public override object ProvideValue( IServiceProvider serviceProvider )
+ {
+ return this;
+ }
+
+ #endregion Implement MarkupExtension
+
+ #region Methods (Private)
+
+ private double GetValue( object operand, CornerRadius sourceCornerRadius, double autoValue )
+ {
+ var stringVal = operand as string;
+ if( stringVal != null )
+ {
+ if( Auto.Equals( stringVal, StringComparison.Ordinal ) )
+ {
+ return autoValue;
+ }
+ else if( "TopLeft".Equals( stringVal, StringComparison.Ordinal ) )
+ {
+ return sourceCornerRadius.TopLeft;
+ }
+ else if( "TopRight".Equals( stringVal, StringComparison.Ordinal ) )
+ {
+ return sourceCornerRadius.TopRight;
+ }
+ else if( "BottomRight".Equals( stringVal, StringComparison.Ordinal ) )
+ {
+ return sourceCornerRadius.BottomRight;
+ }
+ else if( "BottomLeft".Equals( stringVal, StringComparison.Ordinal ) )
+ {
+ return sourceCornerRadius.BottomLeft;
+ }
+ else if( double.TryParse( stringVal, out var doubleValue ) )
+ {
+ return doubleValue;
+ }
+ }
+ else if( operand is double || operand is int )
+ {
+ return ( double )System.Convert.ToDouble( operand );
+ }
+
+ throw new ArgumentException( "Value '" + operand + "' not recognized. Supported values are Auto, Left, Top, Right, Bottom or a double value." );
+ }
+
+ #endregion Methods (Private)
+
+ }
+
+}
diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/DateTimePicker/Implementation/DateTimePicker.cs b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/DateTimePicker/Implementation/DateTimePicker.cs
index 2abb3511..feafd790 100644
--- a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/DateTimePicker/Implementation/DateTimePicker.cs
+++ b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/DateTimePicker/Implementation/DateTimePicker.cs
@@ -51,6 +51,23 @@ namespace Xceed.Wpf.Toolkit
#region Properties
+ #region AutoCloseCalendarOnTodayButton
+
+ public static readonly DependencyProperty AutoCloseCalendarOnTodayButtonProperty = DependencyProperty.Register( nameof( AutoCloseCalendarOnTodayButton ), typeof( bool ), typeof( DateTimePicker ), new UIPropertyMetadata( false ) );
+ public bool AutoCloseCalendarOnTodayButton
+ {
+ get
+ {
+ return ( bool )GetValue( AutoCloseCalendarOnTodayButtonProperty );
+ }
+ set
+ {
+ SetValue( AutoCloseCalendarOnTodayButtonProperty, value );
+ }
+ }
+
+ #endregion //AutoCloseCalendarOnToDayButton
+
#region AutoCloseCalendar
public static readonly DependencyProperty AutoCloseCalendarProperty = DependencyProperty.Register( "AutoCloseCalendar", typeof( bool ), typeof( DateTimePicker ), new UIPropertyMetadata( false ) );
diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/DateTimePicker/Themes/Aero2.NormalColor.xaml b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/DateTimePicker/Themes/Aero2.NormalColor.xaml
index a757e612..dddd7197 100644
--- a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/DateTimePicker/Themes/Aero2.NormalColor.xaml
+++ b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/DateTimePicker/Themes/Aero2.NormalColor.xaml
@@ -21,6 +21,7 @@
xmlns:themes="clr-namespace:Xceed.Wpf.Toolkit.Themes"
xmlns:chrome="clr-namespace:Xceed.Wpf.Toolkit.Chromes"
xmlns:conv="clr-namespace:Xceed.Wpf.Toolkit.Core.Converters"
+ xmlns:core="clr-namespace:Xceed.Wpf.Toolkit.Core"
xmlns:dateConv="clr-namespace:Xceed.Wpf.Toolkit.Converters"
xmlns:sys="clr-namespace:System;assembly=mscorlib">
@@ -47,7 +48,7 @@
+
+ ShowButtonSpinner="{TemplateBinding ShowButtonSpinner}"
+ CornerRadius="{Binding RelativeSource={RelativeSource Mode=TemplatedParent}, Path=CornerRadius, Converter={conv:CornerRadiusReplacementConverter Auto, 0, 0, Auto}}">
+
+
+
@@ -72,7 +73,7 @@
+
+ ShowButtonSpinner="{TemplateBinding ShowButtonSpinner}"
+ CornerRadius="{Binding RelativeSource={RelativeSource Mode=TemplatedParent}, Path=CornerRadius, Converter={conv:CornerRadiusReplacementConverter Auto, 0, 0, Auto}}">
+
+
+
x.Value ).ToArray() );
var time = string.Join( cultureInfo.DateTimeFormat.TimeSeparator, timeParts );
+ while( millisecondsPart.Length < 3 )
+ {
+ millisecondsPart = "0" + millisecondsPart;
+ }
time += "." + millisecondsPart;
return String.Format( "{0} {1} {2}", date, time, designator );
diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/DateTimeUpDown/Themes/Aero2.NormalColor.xaml b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/DateTimeUpDown/Themes/Aero2.NormalColor.xaml
index 2ff6b4e6..91c4446a 100644
--- a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/DateTimeUpDown/Themes/Aero2.NormalColor.xaml
+++ b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/DateTimeUpDown/Themes/Aero2.NormalColor.xaml
@@ -18,120 +18,148 @@
-
-
-
+
+
+
-
-
-
+
+
+
-
+
-
+
diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/DateTimeUpDown/Themes/Generic.xaml b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/DateTimeUpDown/Themes/Generic.xaml
index 6cc0f3ce..1518f17b 100644
--- a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/DateTimeUpDown/Themes/Generic.xaml
+++ b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/DateTimeUpDown/Themes/Generic.xaml
@@ -18,132 +18,137 @@
-
-
+
+
-
-
-
+
+
+
-
+ BorderThickness="0"
+ Background="Transparent"
+ CaretBrush="{Binding CaretBrush, RelativeSource={RelativeSource TemplatedParent}}"
+ ContextMenu="{TemplateBinding ContextMenu}"
+ FontFamily="{TemplateBinding FontFamily}"
+ FontSize="{TemplateBinding FontSize}"
+ FontStretch="{TemplateBinding FontStretch}"
+ FontStyle="{TemplateBinding FontStyle}"
+ FontWeight="{TemplateBinding FontWeight}"
+ Foreground="{TemplateBinding Foreground}"
+ HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}"
+ VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}"
+ IsUndoEnabled="{Binding IsUndoEnabled, RelativeSource={RelativeSource TemplatedParent}}"
+ IsTabStop="True"
+ AutoSelectBehavior="OnFocus"
+ MinWidth="20"
+ AcceptsReturn="False"
+ Padding="{TemplateBinding Padding}"
+ TextAlignment="{TemplateBinding TextAlignment}"
+ TextWrapping="NoWrap"
+ TabIndex="{TemplateBinding TabIndex}"
+ Text="{Binding Text, RelativeSource={RelativeSource TemplatedParent}}"
+ Watermark="{TemplateBinding Watermark}"
+ WatermarkTemplate="{TemplateBinding WatermarkTemplate}" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/DropDownButton/Implementation/DropDownButton.cs b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/DropDownButton/Implementation/DropDownButton.cs
index 505e02aa..5af7975c 100644
--- a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/DropDownButton/Implementation/DropDownButton.cs
+++ b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/DropDownButton/Implementation/DropDownButton.cs
@@ -247,6 +247,36 @@ namespace Xceed.Wpf.Toolkit
#endregion
+ #region CornerRadius
+
+ public static readonly DependencyProperty CornerRadiusProperty = DependencyProperty.Register( nameof( CornerRadius ), typeof( CornerRadius )
+ , typeof( DropDownButton ), new UIPropertyMetadata( new CornerRadius(), OnCornerRadiusPropertiesChanged ) );
+ public CornerRadius CornerRadius
+ {
+ get
+ {
+ return ( CornerRadius )GetValue( CornerRadiusProperty );
+ }
+ set
+ {
+ SetValue( MaxDropDownHeightProperty, value );
+ }
+ }
+
+ private static void OnCornerRadiusPropertiesChanged( DependencyObject o, DependencyPropertyChangedEventArgs e )
+ {
+ var dropDownButton = o as DropDownButton;
+ if( dropDownButton != null )
+ dropDownButton.OnCornerRadiusChanged( ( CornerRadius )e.OldValue, ( CornerRadius )e.NewValue );
+ }
+
+ protected virtual void OnCornerRadiusChanged( CornerRadius oldValue, CornerRadius newValue )
+ {
+ }
+
+ #endregion
+
+
#endregion //Properties
#region Base Class Overrides
diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/DropDownButton/Themes/Aero2.NormalColor.xaml b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/DropDownButton/Themes/Aero2.NormalColor.xaml
index f2bdd00c..233e6822 100644
--- a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/DropDownButton/Themes/Aero2.NormalColor.xaml
+++ b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/DropDownButton/Themes/Aero2.NormalColor.xaml
@@ -19,6 +19,7 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:chrome="clr-namespace:Xceed.Wpf.Toolkit.Chromes"
xmlns:conv="clr-namespace:Xceed.Wpf.Toolkit.Core.Converters"
+ xmlns:core="clr-namespace:Xceed.Wpf.Toolkit.Core"
xmlns:themes="clr-namespace:Xceed.Wpf.Toolkit.Themes"
xmlns:local="clr-namespace:Xceed.Wpf.Toolkit"
xmlns:sys="clr-namespace:System;assembly=mscorlib">
@@ -70,6 +71,7 @@
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/MaskedTextBox/Themes/Generic.xaml b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/MaskedTextBox/Themes/Generic.xaml
index 69204262..c6c9776d 100644
--- a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/MaskedTextBox/Themes/Generic.xaml
+++ b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/MaskedTextBox/Themes/Generic.xaml
@@ -17,47 +17,59 @@
-
-
-
-
-
-
-
+
+
+
+
+
+
+
diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/MaskedTextBox/Themes/HighContrast.xaml b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/MaskedTextBox/Themes/HighContrast.xaml
index 69204262..c6c9776d 100644
--- a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/MaskedTextBox/Themes/HighContrast.xaml
+++ b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/MaskedTextBox/Themes/HighContrast.xaml
@@ -17,47 +17,59 @@
-
-
-
-
-
-
-
+
+
+
+
+
+
+
diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/NumericUpDown/Themes/Aero2.NormalColor.xaml b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/NumericUpDown/Themes/Aero2.NormalColor.xaml
index 97b65651..e75add8d 100644
--- a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/NumericUpDown/Themes/Aero2.NormalColor.xaml
+++ b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/NumericUpDown/Themes/Aero2.NormalColor.xaml
@@ -20,6 +20,7 @@
xmlns:local="clr-namespace:Xceed.Wpf.Toolkit"
xmlns:themes="clr-namespace:Xceed.Wpf.Toolkit.Themes"
xmlns:prim="clr-namespace:Xceed.Wpf.Toolkit.Primitives"
+ xmlns:core="clr-namespace:Xceed.Wpf.Toolkit.Core"
xmlns:conv="clr-namespace:Xceed.Wpf.Toolkit.Core.Converters">
@@ -54,6 +55,8 @@
Value="Right" />
+
@@ -73,8 +76,8 @@
SpinnerUpContentTemplate="{Binding ButtonSpinnerUpContentTemplate, RelativeSource={RelativeSource TemplatedParent}, TargetNullValue={StaticResource IncreaseGlyphNormalKey}}"
SpinnerDownContentTemplate="{Binding ButtonSpinnerDownContentTemplate, RelativeSource={RelativeSource TemplatedParent}, TargetNullValue={StaticResource DecreaseGlyphNormalKey}}"
SpinnerUpDisabledContentTemplate="{Binding ButtonSpinnerUpDisabledContentTemplate, RelativeSource={RelativeSource TemplatedParent}, TargetNullValue={StaticResource IncreaseGlyphDisabledKey}}"
- SpinnerDownDisabledContentTemplate="{Binding ButtonSpinnerDownDisabledContentTemplate, RelativeSource={RelativeSource TemplatedParent}, TargetNullValue={StaticResource DecreaseGlyphDisabledKey}}">
-
+ SpinnerDownDisabledContentTemplate="{Binding ButtonSpinnerDownDisabledContentTemplate, RelativeSource={RelativeSource TemplatedParent}, TargetNullValue={StaticResource DecreaseGlyphDisabledKey}}"
+ CornerRadius="{Binding RelativeSource={RelativeSource Mode=TemplatedParent}, Path=CornerRadius}">
@@ -54,6 +55,8 @@
Value="Right" />
+
@@ -73,11 +76,12 @@
SpinnerUpContentTemplate="{Binding ButtonSpinnerUpContentTemplate, RelativeSource={RelativeSource TemplatedParent}, TargetNullValue={StaticResource IncreaseGlyphNormalKey}}"
SpinnerDownContentTemplate="{Binding ButtonSpinnerDownContentTemplate, RelativeSource={RelativeSource TemplatedParent}, TargetNullValue={StaticResource DecreaseGlyphNormalKey}}"
SpinnerUpDisabledContentTemplate="{Binding ButtonSpinnerUpDisabledContentTemplate, RelativeSource={RelativeSource TemplatedParent}, TargetNullValue={StaticResource IncreaseGlyphDisabledKey}}"
- SpinnerDownDisabledContentTemplate="{Binding ButtonSpinnerDownDisabledContentTemplate, RelativeSource={RelativeSource TemplatedParent}, TargetNullValue={StaticResource DecreaseGlyphDisabledKey}}">
+ SpinnerDownDisabledContentTemplate="{Binding ButtonSpinnerDownDisabledContentTemplate, RelativeSource={RelativeSource TemplatedParent}, TargetNullValue={StaticResource DecreaseGlyphDisabledKey}}"
+ CornerRadius="{Binding RelativeSource={RelativeSource Mode=TemplatedParent}, Path=CornerRadius}">
", OnMaskPropertyChanged ) );
- public string Mask
- {
- get
- {
- return ( string )GetValue( MaskProperty );
- }
- set
- {
- SetValue( MaskProperty, value );
- }
- }
-
- private static void OnMaskPropertyChanged( DependencyObject o, DependencyPropertyChangedEventArgs e )
- {
- MaskedTextBox maskedTextBox = o as MaskedTextBox;
- if( maskedTextBox != null )
- maskedTextBox.OnMaskChanged( ( string )e.OldValue, ( string )e.NewValue );
- }
-
- protected virtual void OnMaskChanged( string oldValue, string newValue )
- {
- UpdateMaskProvider( newValue );
- UpdateText( 0 );
- }
-
- #endregion //Mask
-
- #region PromptChar
-
- public static readonly DependencyProperty PromptCharProperty = DependencyProperty.Register( "PromptChar", typeof( char ), typeof( MaskedTextBox ), new UIPropertyMetadata( '_', OnPromptCharChanged ) );
- public char PromptChar
- {
- get
- {
- return ( char )GetValue( PromptCharProperty );
- }
- set
- {
- SetValue( PromptCharProperty, value );
- }
- }
-
- private static void OnPromptCharChanged( DependencyObject o, DependencyPropertyChangedEventArgs e )
- {
- MaskedTextBox maskedTextBox = o as MaskedTextBox;
- if( maskedTextBox != null )
- maskedTextBox.OnPromptCharChanged( ( char )e.OldValue, ( char )e.NewValue );
- }
-
- protected virtual void OnPromptCharChanged( char oldValue, char newValue )
- {
- UpdateMaskProvider( Mask );
- }
-
- #endregion //PromptChar
-
- #region SelectAllOnGotFocus
-
- public static readonly DependencyProperty SelectAllOnGotFocusProperty = DependencyProperty.Register( "SelectAllOnGotFocus", typeof( bool ), typeof( MaskedTextBox ), new PropertyMetadata( false ) );
- public bool SelectAllOnGotFocus
- {
- get
- {
- return ( bool )GetValue( SelectAllOnGotFocusProperty );
- }
- set
- {
- SetValue( SelectAllOnGotFocusProperty, value );
- }
- }
-
- #endregion //SelectAllOnGotFocus
-
- #region Text
-
- private static void OnTextChanged( DependencyObject o, DependencyPropertyChangedEventArgs e )
- {
- MaskedTextBox inputBase = o as MaskedTextBox;
- if( inputBase != null )
- inputBase.OnTextChanged( ( string )e.OldValue, ( string )e.NewValue );
- }
-
- protected virtual void OnTextChanged( string oldValue, string newValue )
- {
- if( _isInitialized )
- SyncTextAndValueProperties( MaskedTextBox.TextProperty, newValue );
- }
-
- #endregion //Text
-
- #region Value
-
- public static readonly DependencyProperty ValueProperty = DependencyProperty.Register( "Value", typeof( object ), typeof( MaskedTextBox ), new FrameworkPropertyMetadata( null, FrameworkPropertyMetadataOptions.BindsTwoWayByDefault, OnValueChanged ) );
- public object Value
- {
- get
- {
- return ( object )GetValue( ValueProperty );
- }
- set
- {
- SetValue( ValueProperty, value );
- }
- }
-
- private static void OnValueChanged( DependencyObject o, DependencyPropertyChangedEventArgs e )
- {
- MaskedTextBox maskedTextBox = o as MaskedTextBox;
- if( maskedTextBox != null )
- maskedTextBox.OnValueChanged( ( object )e.OldValue, ( object )e.NewValue );
- }
-
- protected virtual void OnValueChanged( object oldValue, object newValue )
- {
- if( _isInitialized )
- SyncTextAndValueProperties( MaskedTextBox.ValueProperty, newValue );
-
- RoutedPropertyChangedEventArgs
+
+
-
+
diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/Utils/Licensing/LicenseOrigin.cs b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/Utils/Licensing/LicenseOrigin.cs
deleted file mode 100644
index 708fb1c1..00000000
--- a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/Utils/Licensing/LicenseOrigin.cs
+++ /dev/null
@@ -1,35 +0,0 @@
-/*************************************************************************************
-
- 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
-
- ***********************************************************************************/
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/WatermarkComboBox/Implementation/WatermarkComboBox.cs b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/WatermarkComboBox/Implementation/WatermarkComboBox.cs
index 5b6cf105..4dcb69b2 100644
--- a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/WatermarkComboBox/Implementation/WatermarkComboBox.cs
+++ b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/WatermarkComboBox/Implementation/WatermarkComboBox.cs
@@ -78,6 +78,23 @@ namespace Xceed.Wpf.Toolkit
#endregion //WatermarkBackground
+ #region CornerRadius
+
+ public static readonly DependencyProperty CornerRadiusProperty = DependencyProperty.Register( nameof( CornerRadius ), typeof( CornerRadius ), typeof( WatermarkComboBox ), new UIPropertyMetadata( new CornerRadius() ) );
+ public CornerRadius CornerRadius
+ {
+ get
+ {
+ return ( CornerRadius )GetValue( CornerRadiusProperty );
+ }
+ set
+ {
+ SetValue( CornerRadiusProperty, value );
+ }
+ }
+
+ #endregion //CornerRadius
+
#endregion //Properties
#region Constructors
diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/WatermarkComboBox/Themes/Aero2.NormalColor.xaml b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/WatermarkComboBox/Themes/Aero2.NormalColor.xaml
index 9cb12a4c..4b1e61a6 100644
--- a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/WatermarkComboBox/Themes/Aero2.NormalColor.xaml
+++ b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/WatermarkComboBox/Themes/Aero2.NormalColor.xaml
@@ -18,7 +18,8 @@
+ xmlns:local="clr-namespace:Xceed.Wpf.Toolkit"
+ xmlns:core="clr-namespace:Xceed.Wpf.Toolkit.Core">