diff --git a/README.md b/README.md
index f6426bca..c6676eac 100644
--- a/README.md
+++ b/README.md
@@ -63,6 +63,10 @@ Step 4:enjoy coding
## Latest examples
+### SplitButton
+
+
+
### FloatingBlock

diff --git a/src/Core_30/HandyControlDemo_Core_30/HandyControlDemo_Core30.csproj b/src/Core_30/HandyControlDemo_Core_30/HandyControlDemo_Core30.csproj
index ad7fbab1..a463f64c 100644
--- a/src/Core_30/HandyControlDemo_Core_30/HandyControlDemo_Core30.csproj
+++ b/src/Core_30/HandyControlDemo_Core_30/HandyControlDemo_Core30.csproj
@@ -417,6 +417,9 @@
Resources\Img\thumbs_up.png
+
+ Resources\Img\SplitButton_16x.png
+
diff --git a/src/Core_30/HandyControl_Core_30/Themes/Styles/Base/ComboBoxBaseStyle.xaml b/src/Core_30/HandyControl_Core_30/Themes/Styles/Base/ComboBoxBaseStyle.xaml
index ec88f225..d248b76b 100644
--- a/src/Core_30/HandyControl_Core_30/Themes/Styles/Base/ComboBoxBaseStyle.xaml
+++ b/src/Core_30/HandyControl_Core_30/Themes/Styles/Base/ComboBoxBaseStyle.xaml
@@ -1,7 +1,6 @@
@@ -528,7 +527,7 @@
@@ -351,7 +350,7 @@
-
+
diff --git a/src/Shared/HandyControl_Shared/Themes/Styles/Base/DateTimePickerBaseStyle.xaml b/src/Shared/HandyControl_Shared/Themes/Styles/Base/DateTimePickerBaseStyle.xaml
index 2eb9d802..e9ad4187 100644
--- a/src/Shared/HandyControl_Shared/Themes/Styles/Base/DateTimePickerBaseStyle.xaml
+++ b/src/Shared/HandyControl_Shared/Themes/Styles/Base/DateTimePickerBaseStyle.xaml
@@ -1,7 +1,6 @@
@@ -162,13 +161,13 @@
@@ -330,7 +329,7 @@
-
+
diff --git a/src/Shared/HandyControl_Shared/Themes/Styles/Base/NumericUpDownBaseStyle.xaml b/src/Shared/HandyControl_Shared/Themes/Styles/Base/NumericUpDownBaseStyle.xaml
index b01ad9fd..ff1162ae 100644
--- a/src/Shared/HandyControl_Shared/Themes/Styles/Base/NumericUpDownBaseStyle.xaml
+++ b/src/Shared/HandyControl_Shared/Themes/Styles/Base/NumericUpDownBaseStyle.xaml
@@ -1,8 +1,7 @@
+ xmlns:interactivity="clr-namespace:HandyControl.Interactivity">
@@ -131,12 +130,12 @@
@@ -270,7 +269,7 @@
-
+
diff --git a/src/Shared/HandyControl_Shared/Themes/Styles/Base/PasswordBoxBaseStyle.xaml b/src/Shared/HandyControl_Shared/Themes/Styles/Base/PasswordBoxBaseStyle.xaml
index 6028041e..e06d7e23 100644
--- a/src/Shared/HandyControl_Shared/Themes/Styles/Base/PasswordBoxBaseStyle.xaml
+++ b/src/Shared/HandyControl_Shared/Themes/Styles/Base/PasswordBoxBaseStyle.xaml
@@ -1,7 +1,6 @@
@@ -115,7 +114,7 @@
@@ -291,7 +290,7 @@
-
+
@@ -301,7 +300,7 @@
-
+
diff --git a/src/Shared/HandyControl_Shared/Themes/Styles/Base/ProgressButtonBaseStyle.xaml b/src/Shared/HandyControl_Shared/Themes/Styles/Base/ProgressButtonBaseStyle.xaml
index 5f1b92ff..c5606579 100644
--- a/src/Shared/HandyControl_Shared/Themes/Styles/Base/ProgressButtonBaseStyle.xaml
+++ b/src/Shared/HandyControl_Shared/Themes/Styles/Base/ProgressButtonBaseStyle.xaml
@@ -1,7 +1,6 @@
+ xmlns:controls="clr-namespace:HandyControl.Controls">
@@ -32,7 +31,7 @@
-
+
diff --git a/src/Shared/HandyControl_Shared/Themes/Styles/Base/SearchBarBaseStyle.xaml b/src/Shared/HandyControl_Shared/Themes/Styles/Base/SearchBarBaseStyle.xaml
index f79bfddd..5f40254b 100644
--- a/src/Shared/HandyControl_Shared/Themes/Styles/Base/SearchBarBaseStyle.xaml
+++ b/src/Shared/HandyControl_Shared/Themes/Styles/Base/SearchBarBaseStyle.xaml
@@ -1,7 +1,6 @@
@@ -109,13 +108,13 @@
@@ -249,7 +248,7 @@
-
+
diff --git a/src/Shared/HandyControl_Shared/Themes/Styles/Base/SplitButtonBaseStyle.xaml b/src/Shared/HandyControl_Shared/Themes/Styles/Base/SplitButtonBaseStyle.xaml
new file mode 100644
index 00000000..b173b635
--- /dev/null
+++ b/src/Shared/HandyControl_Shared/Themes/Styles/Base/SplitButtonBaseStyle.xaml
@@ -0,0 +1,85 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Shared/HandyControl_Shared/Themes/Styles/Base/TextBoxBaseStyle.xaml b/src/Shared/HandyControl_Shared/Themes/Styles/Base/TextBoxBaseStyle.xaml
index f91ce695..a4a2fa47 100644
--- a/src/Shared/HandyControl_Shared/Themes/Styles/Base/TextBoxBaseStyle.xaml
+++ b/src/Shared/HandyControl_Shared/Themes/Styles/Base/TextBoxBaseStyle.xaml
@@ -1,7 +1,6 @@
@@ -130,12 +129,12 @@
@@ -265,7 +264,7 @@
-
+
diff --git a/src/Shared/HandyControl_Shared/Themes/Styles/Base/TimePickerBaseStyle.xaml b/src/Shared/HandyControl_Shared/Themes/Styles/Base/TimePickerBaseStyle.xaml
index aebdd389..ae115ada 100644
--- a/src/Shared/HandyControl_Shared/Themes/Styles/Base/TimePickerBaseStyle.xaml
+++ b/src/Shared/HandyControl_Shared/Themes/Styles/Base/TimePickerBaseStyle.xaml
@@ -1,7 +1,6 @@
@@ -162,13 +161,13 @@
@@ -330,7 +329,7 @@
-
+
diff --git a/src/Shared/HandyControl_Shared/Themes/Styles/SplitButton.xaml b/src/Shared/HandyControl_Shared/Themes/Styles/SplitButton.xaml
new file mode 100644
index 00000000..3e3ba2dc
--- /dev/null
+++ b/src/Shared/HandyControl_Shared/Themes/Styles/SplitButton.xaml
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Shared/HandyControl_Shared/Themes/Styles/Style.xaml b/src/Shared/HandyControl_Shared/Themes/Styles/Style.xaml
index aaa1a79c..46347ec2 100644
--- a/src/Shared/HandyControl_Shared/Themes/Styles/Style.xaml
+++ b/src/Shared/HandyControl_Shared/Themes/Styles/Style.xaml
@@ -74,6 +74,7 @@
+
\ No newline at end of file
diff --git a/src/Shared/HandyControl_Shared/Themes/Styles/TransitioningContentControl.xaml b/src/Shared/HandyControl_Shared/Themes/Styles/TransitioningContentControl.xaml
index 81fb9f6a..0e238931 100644
--- a/src/Shared/HandyControl_Shared/Themes/Styles/TransitioningContentControl.xaml
+++ b/src/Shared/HandyControl_Shared/Themes/Styles/TransitioningContentControl.xaml
@@ -11,7 +11,7 @@
-
+
@@ -76,29 +76,27 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/Shared/HandyControl_Shared/Tools/Converter/CornerRadiusSplitConverter.cs b/src/Shared/HandyControl_Shared/Tools/Converter/CornerRadiusSplitConverter.cs
new file mode 100644
index 00000000..7ae70d8f
--- /dev/null
+++ b/src/Shared/HandyControl_Shared/Tools/Converter/CornerRadiusSplitConverter.cs
@@ -0,0 +1,33 @@
+using System;
+using System.Globalization;
+using System.Windows;
+using System.Windows.Data;
+
+namespace HandyControl.Tools.Converter
+{
+ public class CornerRadiusSplitConverter : IValueConverter
+ {
+ public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
+ {
+ if (value is CornerRadius cornerRadius)
+ {
+ if (parameter is string str)
+ {
+ var arr = str.Split(',');
+ if (arr.Length != 4) return cornerRadius;
+
+ return new CornerRadius(arr[0].Equals("1") ? cornerRadius.TopLeft : 0,
+ arr[1].Equals("1") ? cornerRadius.TopRight : 0,
+ arr[1].Equals("1") ? cornerRadius.BottomRight : 0,
+ arr[1].Equals("1") ? cornerRadius.BottomLeft : 0);
+ }
+ }
+ return value;
+ }
+
+ public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
+ {
+ throw new NotImplementedException();
+ }
+ }
+}
diff --git a/src/Shared/HandyControl_Shared/Tools/Converter/ThicknessSplitConverter.cs b/src/Shared/HandyControl_Shared/Tools/Converter/ThicknessSplitConverter.cs
new file mode 100644
index 00000000..f024dc3a
--- /dev/null
+++ b/src/Shared/HandyControl_Shared/Tools/Converter/ThicknessSplitConverter.cs
@@ -0,0 +1,33 @@
+using System;
+using System.Globalization;
+using System.Windows;
+using System.Windows.Data;
+
+namespace HandyControl.Tools.Converter
+{
+ public class ThicknessSplitConverter : IValueConverter
+ {
+ public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
+ {
+ if (value is Thickness cornerRadius)
+ {
+ if (parameter is string str)
+ {
+ var arr = str.Split(',');
+ if (arr.Length != 4) return cornerRadius;
+
+ return new CornerRadius(arr[0].Equals("1") ? cornerRadius.Left : 0,
+ arr[1].Equals("1") ? cornerRadius.Top : 0,
+ arr[1].Equals("1") ? cornerRadius.Right : 0,
+ arr[1].Equals("1") ? cornerRadius.Bottom : 0);
+ }
+ }
+ return value;
+ }
+
+ public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
+ {
+ throw new NotImplementedException();
+ }
+ }
+}