From a34a0a9662d31d72af440a6d508baa513e31cf13 Mon Sep 17 00:00:00 2001 From: NaBian <836904362@qq.com> Date: Tue, 21 Jul 2020 00:43:03 +0800 Subject: [PATCH] init branch --- .../Controls/Panel/FlexPanel.cs | 99 +++++++++++++++++++ .../Data/Flex/FlexContentAlignment.cs | 12 +++ .../Data/Flex/FlexContentJustify.cs | 11 +++ .../Data/Flex/FlexItemAlignment.cs | 12 +++ .../Data/Flex/FlexItemsAlignment.cs | 11 +++ .../Data/Flex/FlexOrientation.cs | 10 ++ .../Data/Flex/FlexWrapping.cs | 9 ++ .../HandyControl_Shared.projitems | 7 ++ 8 files changed, 171 insertions(+) create mode 100644 src/Shared/HandyControl_Shared/Controls/Panel/FlexPanel.cs create mode 100644 src/Shared/HandyControl_Shared/Data/Flex/FlexContentAlignment.cs create mode 100644 src/Shared/HandyControl_Shared/Data/Flex/FlexContentJustify.cs create mode 100644 src/Shared/HandyControl_Shared/Data/Flex/FlexItemAlignment.cs create mode 100644 src/Shared/HandyControl_Shared/Data/Flex/FlexItemsAlignment.cs create mode 100644 src/Shared/HandyControl_Shared/Data/Flex/FlexOrientation.cs create mode 100644 src/Shared/HandyControl_Shared/Data/Flex/FlexWrapping.cs diff --git a/src/Shared/HandyControl_Shared/Controls/Panel/FlexPanel.cs b/src/Shared/HandyControl_Shared/Controls/Panel/FlexPanel.cs new file mode 100644 index 00000000..2f91936b --- /dev/null +++ b/src/Shared/HandyControl_Shared/Controls/Panel/FlexPanel.cs @@ -0,0 +1,99 @@ +using System.Windows; +using System.Windows.Controls; +using HandyControl.Data; + +namespace HandyControl.Controls +{ + public class FlexPanel : Panel + { + public static readonly DependencyProperty OrderProperty = DependencyProperty.RegisterAttached( + "Order", typeof(int), typeof(FlexPanel), new PropertyMetadata(ValueBoxes.Int0Box)); + + public static void SetOrder(DependencyObject element, int value) + => element.SetValue(OrderProperty, value); + + public static int GetOrder(DependencyObject element) + => (int) element.GetValue(OrderProperty); + + public static readonly DependencyProperty FlexGrowProperty = DependencyProperty.RegisterAttached( + "FlexGrow", typeof(double), typeof(FlexPanel), new PropertyMetadata(ValueBoxes.Double0Box)); + + public static void SetFlexGrow(DependencyObject element, double value) + => element.SetValue(FlexGrowProperty, value); + + public static double GetFlexGrow(DependencyObject element) + => (double) element.GetValue(FlexGrowProperty); + + public static readonly DependencyProperty FlexShrinkProperty = DependencyProperty.RegisterAttached( + "FlexShrink", typeof(double), typeof(FlexPanel), new PropertyMetadata(ValueBoxes.Double1Box)); + + public static void SetFlexShrink(DependencyObject element, double value) + => element.SetValue(FlexShrinkProperty, value); + + public static double GetFlexShrink(DependencyObject element) + => (double) element.GetValue(FlexShrinkProperty); + + public static readonly DependencyProperty FlexBasisProperty = DependencyProperty.RegisterAttached( + "FlexBasis", typeof(double), typeof(FlexPanel), new PropertyMetadata(double.NaN)); + + public static void SetFlexBasis(DependencyObject element, double value) + => element.SetValue(FlexBasisProperty, value); + + public static double GetFlexBasis(DependencyObject element) + => (double) element.GetValue(FlexBasisProperty); + + public static readonly DependencyProperty AlignSelfProperty = DependencyProperty.RegisterAttached( + "AlignSelf", typeof(FlexItemAlignment), typeof(FlexPanel), new PropertyMetadata(default(FlexItemAlignment))); + + public static void SetAlignSelf(DependencyObject element, FlexItemAlignment value) + => element.SetValue(AlignSelfProperty, value); + + public static FlexItemAlignment GetAlignSelf(DependencyObject element) + => (FlexItemAlignment) element.GetValue(AlignSelfProperty); + + public static readonly DependencyProperty FlexDirectionProperty = DependencyProperty.Register( + "FlexDirection", typeof(FlexOrientation), typeof(FlexPanel), new PropertyMetadata(default(FlexOrientation))); + + public FlexOrientation FlexDirection + { + get => (FlexOrientation) GetValue(FlexDirectionProperty); + set => SetValue(FlexDirectionProperty, value); + } + + public static readonly DependencyProperty FlexWrapProperty = DependencyProperty.Register( + "FlexWrap", typeof(FlexWrapping), typeof(FlexPanel), new PropertyMetadata(default(FlexWrapping))); + + public FlexWrapping FlexWrap + { + get => (FlexWrapping) GetValue(FlexWrapProperty); + set => SetValue(FlexWrapProperty, value); + } + + public static readonly DependencyProperty JustifyContentProperty = DependencyProperty.Register( + "JustifyContent", typeof(FlexContentJustify), typeof(FlexPanel), new PropertyMetadata(default(FlexContentJustify))); + + public FlexContentJustify JustifyContent + { + get => (FlexContentJustify) GetValue(JustifyContentProperty); + set => SetValue(JustifyContentProperty, value); + } + + public static readonly DependencyProperty AlignItemsProperty = DependencyProperty.Register( + "AlignItems", typeof(FlexItemsAlignment), typeof(FlexPanel), new PropertyMetadata(default(FlexItemsAlignment))); + + public FlexItemsAlignment AlignItems + { + get => (FlexItemsAlignment) GetValue(AlignItemsProperty); + set => SetValue(AlignItemsProperty, value); + } + + public static readonly DependencyProperty AlignContentProperty = DependencyProperty.Register( + "AlignContent", typeof(FlexContentAlignment), typeof(FlexPanel), new PropertyMetadata(default(FlexContentAlignment))); + + public FlexContentAlignment AlignContent + { + get => (FlexContentAlignment) GetValue(AlignContentProperty); + set => SetValue(AlignContentProperty, value); + } + } +} diff --git a/src/Shared/HandyControl_Shared/Data/Flex/FlexContentAlignment.cs b/src/Shared/HandyControl_Shared/Data/Flex/FlexContentAlignment.cs new file mode 100644 index 00000000..e6ec5f0b --- /dev/null +++ b/src/Shared/HandyControl_Shared/Data/Flex/FlexContentAlignment.cs @@ -0,0 +1,12 @@ +namespace HandyControl.Data +{ + public enum FlexContentAlignment + { + FlexStart, + FlexEnd, + Center, + SpaceBetween, + SpaceAround, + Stretch + } +} \ No newline at end of file diff --git a/src/Shared/HandyControl_Shared/Data/Flex/FlexContentJustify.cs b/src/Shared/HandyControl_Shared/Data/Flex/FlexContentJustify.cs new file mode 100644 index 00000000..5402f93e --- /dev/null +++ b/src/Shared/HandyControl_Shared/Data/Flex/FlexContentJustify.cs @@ -0,0 +1,11 @@ +namespace HandyControl.Data +{ + public enum FlexContentJustify + { + FlexStart, + FlexEnd, + Center, + SpaceBetween, + SpaceAround + } +} \ No newline at end of file diff --git a/src/Shared/HandyControl_Shared/Data/Flex/FlexItemAlignment.cs b/src/Shared/HandyControl_Shared/Data/Flex/FlexItemAlignment.cs new file mode 100644 index 00000000..0f9e3c2b --- /dev/null +++ b/src/Shared/HandyControl_Shared/Data/Flex/FlexItemAlignment.cs @@ -0,0 +1,12 @@ +namespace HandyControl.Data +{ + public enum FlexItemAlignment + { + Auto, + FlexStart, + FlexEnd, + Center, + Baseline, + Stretch + } +} diff --git a/src/Shared/HandyControl_Shared/Data/Flex/FlexItemsAlignment.cs b/src/Shared/HandyControl_Shared/Data/Flex/FlexItemsAlignment.cs new file mode 100644 index 00000000..6c0549e6 --- /dev/null +++ b/src/Shared/HandyControl_Shared/Data/Flex/FlexItemsAlignment.cs @@ -0,0 +1,11 @@ +namespace HandyControl.Data +{ + public enum FlexItemsAlignment + { + FlexStart, + FlexEnd, + Center, + Baseline, + Stretch + } +} diff --git a/src/Shared/HandyControl_Shared/Data/Flex/FlexOrientation.cs b/src/Shared/HandyControl_Shared/Data/Flex/FlexOrientation.cs new file mode 100644 index 00000000..6f22ed48 --- /dev/null +++ b/src/Shared/HandyControl_Shared/Data/Flex/FlexOrientation.cs @@ -0,0 +1,10 @@ +namespace HandyControl.Data +{ + public enum FlexOrientation + { + Row, + RowReverse, + Column, + ColumnReverse + } +} diff --git a/src/Shared/HandyControl_Shared/Data/Flex/FlexWrapping.cs b/src/Shared/HandyControl_Shared/Data/Flex/FlexWrapping.cs new file mode 100644 index 00000000..47144849 --- /dev/null +++ b/src/Shared/HandyControl_Shared/Data/Flex/FlexWrapping.cs @@ -0,0 +1,9 @@ +namespace HandyControl.Data +{ + public enum FlexWrapping + { + NoWrap, + Wrap, + WrapReverse + } +} diff --git a/src/Shared/HandyControl_Shared/HandyControl_Shared.projitems b/src/Shared/HandyControl_Shared/HandyControl_Shared.projitems index 43a2d51c..17ffb4ba 100644 --- a/src/Shared/HandyControl_Shared/HandyControl_Shared.projitems +++ b/src/Shared/HandyControl_Shared/HandyControl_Shared.projitems @@ -44,6 +44,7 @@ + @@ -73,6 +74,12 @@ + + + + + +