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 @@
+
+
+
+
+
+