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 + +![SplitButton](https://raw.githubusercontent.com/HandyOrg/HandyOrgResource/master/HandyControl/Resources/SplitButton.png) + ### FloatingBlock ![FloatingBlock](https://raw.githubusercontent.com/HandyOrg/HandyOrgResource/master/HandyControl/Resources/FloatingBlock.gif) 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(); + } + } +}