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 01/24] 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 @@ + + + + + + From 407ee6ba72393154f2e2be40c7281f751c5b5444 Mon Sep 17 00:00:00 2001 From: Mahdi Hosseini Date: Thu, 6 Aug 2020 14:59:58 +0430 Subject: [PATCH 02/24] Add Controls to Visual Studio Toolbox --- .gitignore | 3 +- build/build.nuspec | 1 + build/tools/VisualStudioToolsManifest.xml | 85 +++++++++++++++++++++++ 3 files changed, 88 insertions(+), 1 deletion(-) create mode 100644 build/tools/VisualStudioToolsManifest.xml diff --git a/.gitignore b/.gitignore index c6cf94ca..73a63a6b 100644 --- a/.gitignore +++ b/.gitignore @@ -10,4 +10,5 @@ build/* !build/build.ps1 !build/tools/ build/tools/* -!build/tools/packages.config \ No newline at end of file +!build/tools/packages.config +!build/tools/VisualStudioToolsManifest.xml \ No newline at end of file diff --git a/build/build.nuspec b/build/build.nuspec index 63028dbc..6a5ad33c 100644 --- a/build/build.nuspec +++ b/build/build.nuspec @@ -96,5 +96,6 @@ + \ No newline at end of file diff --git a/build/tools/VisualStudioToolsManifest.xml b/build/tools/VisualStudioToolsManifest.xml new file mode 100644 index 00000000..31381dd1 --- /dev/null +++ b/build/tools/VisualStudioToolsManifest.xml @@ -0,0 +1,85 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file From 97211ca627873cf552778ef9aa08b1f6c69ab7c5 Mon Sep 17 00:00:00 2001 From: Mahdi Hosseini Date: Tue, 1 Sep 2020 08:53:43 +0430 Subject: [PATCH 03/24] update issue template --- .github/ISSUE_TEMPLATE/config.yml | 5 +++++ .github/ISSUE_TEMPLATE/feature_request.md | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 .github/ISSUE_TEMPLATE/config.yml diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 00000000..a9aa4c2e --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,5 @@ +blank_issues_enabled: false +contact_links: + - name: Read the Docs + url: http://handyorg.github.io + about: Be sure you've read the docs! See English documentation here http://ghost1372.github.io \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md index bbcbbe7d..214cad85 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.md +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -1,7 +1,7 @@ --- name: Feature request about: Suggest an idea for this project -title: '' +title: '[Feature request]' labels: '' assignees: '' From d5caa4243057e0156ece701db4ba2d2f6ca3166f Mon Sep 17 00:00:00 2001 From: NaBian <836904362@qq.com> Date: Thu, 3 Sep 2020 00:55:09 +0800 Subject: [PATCH 04/24] implemented axis layout --- .../Controls/Panel/FlexPanel.cs | 461 +++++++++++++++++- .../Data/Flex/FlexContentAlignment.cs | 4 +- .../{FlexOrientation.cs => FlexDirection.cs} | 2 +- .../Data/Flex/FlexItemsAlignment.cs | 4 +- .../Flex/{FlexWrapping.cs => FlexWrap.cs} | 2 +- .../HandyControl_Shared.projitems | 4 +- 6 files changed, 446 insertions(+), 31 deletions(-) rename src/Shared/HandyControl_Shared/Data/Flex/{FlexOrientation.cs => FlexDirection.cs} (78%) rename src/Shared/HandyControl_Shared/Data/Flex/{FlexWrapping.cs => FlexWrap.cs} (76%) diff --git a/src/Shared/HandyControl_Shared/Controls/Panel/FlexPanel.cs b/src/Shared/HandyControl_Shared/Controls/Panel/FlexPanel.cs index 2f91936b..f4f3b0f6 100644 --- a/src/Shared/HandyControl_Shared/Controls/Panel/FlexPanel.cs +++ b/src/Shared/HandyControl_Shared/Controls/Panel/FlexPanel.cs @@ -1,99 +1,514 @@ -using System.Windows; +using System; +using System.Windows; using System.Windows.Controls; using HandyControl.Data; +using HandyControl.Expression.Drawing; namespace HandyControl.Controls { public class FlexPanel : Panel { + private UVSize _uvConstraint; + + private int _lineCount; + public static readonly DependencyProperty OrderProperty = DependencyProperty.RegisterAttached( - "Order", typeof(int), typeof(FlexPanel), new PropertyMetadata(ValueBoxes.Int0Box)); + "Order", typeof(int), typeof(FlexPanel), new FrameworkPropertyMetadata(ValueBoxes.Int0Box, FrameworkPropertyMetadataOptions.AffectsMeasure)); public static void SetOrder(DependencyObject element, int value) => element.SetValue(OrderProperty, value); public static int GetOrder(DependencyObject element) - => (int) element.GetValue(OrderProperty); + => (int)element.GetValue(OrderProperty); public static readonly DependencyProperty FlexGrowProperty = DependencyProperty.RegisterAttached( - "FlexGrow", typeof(double), typeof(FlexPanel), new PropertyMetadata(ValueBoxes.Double0Box)); + "FlexGrow", typeof(double), typeof(FlexPanel), new FrameworkPropertyMetadata(ValueBoxes.Double0Box, FrameworkPropertyMetadataOptions.AffectsMeasure)); public static void SetFlexGrow(DependencyObject element, double value) => element.SetValue(FlexGrowProperty, value); public static double GetFlexGrow(DependencyObject element) - => (double) element.GetValue(FlexGrowProperty); + => (double)element.GetValue(FlexGrowProperty); public static readonly DependencyProperty FlexShrinkProperty = DependencyProperty.RegisterAttached( - "FlexShrink", typeof(double), typeof(FlexPanel), new PropertyMetadata(ValueBoxes.Double1Box)); + "FlexShrink", typeof(double), typeof(FlexPanel), new FrameworkPropertyMetadata(ValueBoxes.Double1Box, FrameworkPropertyMetadataOptions.AffectsMeasure)); public static void SetFlexShrink(DependencyObject element, double value) => element.SetValue(FlexShrinkProperty, value); public static double GetFlexShrink(DependencyObject element) - => (double) element.GetValue(FlexShrinkProperty); + => (double)element.GetValue(FlexShrinkProperty); public static readonly DependencyProperty FlexBasisProperty = DependencyProperty.RegisterAttached( - "FlexBasis", typeof(double), typeof(FlexPanel), new PropertyMetadata(double.NaN)); + "FlexBasis", typeof(double), typeof(FlexPanel), new FrameworkPropertyMetadata(double.NaN, FrameworkPropertyMetadataOptions.AffectsMeasure)); public static void SetFlexBasis(DependencyObject element, double value) => element.SetValue(FlexBasisProperty, value); public static double GetFlexBasis(DependencyObject element) - => (double) element.GetValue(FlexBasisProperty); + => (double)element.GetValue(FlexBasisProperty); public static readonly DependencyProperty AlignSelfProperty = DependencyProperty.RegisterAttached( - "AlignSelf", typeof(FlexItemAlignment), typeof(FlexPanel), new PropertyMetadata(default(FlexItemAlignment))); + "AlignSelf", typeof(FlexItemAlignment), typeof(FlexPanel), new FrameworkPropertyMetadata(default(FlexItemAlignment), FrameworkPropertyMetadataOptions.AffectsMeasure)); public static void SetAlignSelf(DependencyObject element, FlexItemAlignment value) => element.SetValue(AlignSelfProperty, value); public static FlexItemAlignment GetAlignSelf(DependencyObject element) - => (FlexItemAlignment) element.GetValue(AlignSelfProperty); + => (FlexItemAlignment)element.GetValue(AlignSelfProperty); public static readonly DependencyProperty FlexDirectionProperty = DependencyProperty.Register( - "FlexDirection", typeof(FlexOrientation), typeof(FlexPanel), new PropertyMetadata(default(FlexOrientation))); + "FlexDirection", typeof(FlexDirection), typeof(FlexPanel), new FrameworkPropertyMetadata(default(FlexDirection), FrameworkPropertyMetadataOptions.AffectsMeasure)); - public FlexOrientation FlexDirection + public FlexDirection FlexDirection { - get => (FlexOrientation) GetValue(FlexDirectionProperty); + get => (FlexDirection)GetValue(FlexDirectionProperty); set => SetValue(FlexDirectionProperty, value); } public static readonly DependencyProperty FlexWrapProperty = DependencyProperty.Register( - "FlexWrap", typeof(FlexWrapping), typeof(FlexPanel), new PropertyMetadata(default(FlexWrapping))); + "FlexWrap", typeof(FlexWrap), typeof(FlexPanel), new FrameworkPropertyMetadata(default(FlexWrap), FrameworkPropertyMetadataOptions.AffectsMeasure)); - public FlexWrapping FlexWrap + public FlexWrap FlexWrap { - get => (FlexWrapping) GetValue(FlexWrapProperty); + get => (FlexWrap)GetValue(FlexWrapProperty); set => SetValue(FlexWrapProperty, value); } public static readonly DependencyProperty JustifyContentProperty = DependencyProperty.Register( - "JustifyContent", typeof(FlexContentJustify), typeof(FlexPanel), new PropertyMetadata(default(FlexContentJustify))); + "JustifyContent", typeof(FlexContentJustify), typeof(FlexPanel), new FrameworkPropertyMetadata(default(FlexContentJustify), FrameworkPropertyMetadataOptions.AffectsMeasure)); public FlexContentJustify JustifyContent { - get => (FlexContentJustify) GetValue(JustifyContentProperty); + get => (FlexContentJustify)GetValue(JustifyContentProperty); set => SetValue(JustifyContentProperty, value); } public static readonly DependencyProperty AlignItemsProperty = DependencyProperty.Register( - "AlignItems", typeof(FlexItemsAlignment), typeof(FlexPanel), new PropertyMetadata(default(FlexItemsAlignment))); + "AlignItems", typeof(FlexItemsAlignment), typeof(FlexPanel), new FrameworkPropertyMetadata(default(FlexItemsAlignment), FrameworkPropertyMetadataOptions.AffectsMeasure)); public FlexItemsAlignment AlignItems { - get => (FlexItemsAlignment) GetValue(AlignItemsProperty); + get => (FlexItemsAlignment)GetValue(AlignItemsProperty); set => SetValue(AlignItemsProperty, value); } public static readonly DependencyProperty AlignContentProperty = DependencyProperty.Register( - "AlignContent", typeof(FlexContentAlignment), typeof(FlexPanel), new PropertyMetadata(default(FlexContentAlignment))); + "AlignContent", typeof(FlexContentAlignment), typeof(FlexPanel), new FrameworkPropertyMetadata(default(FlexContentAlignment), FrameworkPropertyMetadataOptions.AffectsMeasure)); public FlexContentAlignment AlignContent { - get => (FlexContentAlignment) GetValue(AlignContentProperty); + get => (FlexContentAlignment)GetValue(AlignContentProperty); set => SetValue(AlignContentProperty, value); } + + protected override Size MeasureOverride(Size constraint) + { + var curLineSize = new UVSize(FlexDirection); + var panelSize = new UVSize(FlexDirection); + _uvConstraint = new UVSize(FlexDirection, constraint); + var childConstraint = new Size(constraint.Width, constraint.Height); + _lineCount = 1; + + foreach (UIElement child in InternalChildren) + { + if (child == null) continue; + child.Measure(childConstraint); + + var sz = new UVSize(FlexDirection, child.DesiredSize); + + if (FlexWrap == FlexWrap.NoWrap) //continue to accumulate a line + { + curLineSize.U += sz.U; + curLineSize.V = Math.Max(sz.V, curLineSize.V); + } + else + { + if (MathHelper.GreaterThan(curLineSize.U + sz.U, _uvConstraint.U)) //need to switch to another line + { + panelSize.U = Math.Max(curLineSize.U, panelSize.U); + panelSize.V += curLineSize.V; + curLineSize = sz; + _lineCount++; + + if (MathHelper.GreaterThan(sz.U, _uvConstraint.U)) //the element is wider then the constrint - give it a separate line + { + panelSize.U = Math.Max(sz.U, panelSize.U); + panelSize.V += sz.V; + curLineSize = new UVSize(FlexDirection); + _lineCount++; + } + } + else //continue to accumulate a line + { + curLineSize.U += sz.U; + curLineSize.V = Math.Max(sz.V, curLineSize.V); + } + } + } + + //the last line size, if any should be added + panelSize.U = Math.Max(curLineSize.U, panelSize.U); + panelSize.V += curLineSize.V; + + //go from UV space to W/H space + return new Size(panelSize.Width, panelSize.Height); + } + + protected override Size ArrangeOverride(Size arrangeSize) + { + var uvFinalSize = new UVSize(FlexDirection, arrangeSize); + if (MathHelper.IsZero(uvFinalSize.U) || MathHelper.IsZero(uvFinalSize.V)) return arrangeSize; + + // init status + var children = InternalChildren; + var lineIndex = 0; + + var curLineSizeArr = new UVSize[_lineCount]; + curLineSizeArr[0] = new UVSize(FlexDirection); + + var lastInLineArr = new int[_lineCount]; + for (var i = 0; i < _lineCount; i++) + { + lastInLineArr[i] = int.MaxValue; + } + + // calculate line max U space + for (var i = 0; i < children.Count; i++) + { + var child = children[i]; + if (child == null) continue; + + var sz = new UVSize(FlexDirection, child.DesiredSize); + + if (FlexWrap == FlexWrap.NoWrap) + { + curLineSizeArr[lineIndex].U += sz.U; + curLineSizeArr[lineIndex].V = uvFinalSize.V; + } + else + { + if (MathHelper.GreaterThan(curLineSizeArr[lineIndex].U + sz.U, uvFinalSize.U)) //need to switch to another line + { + lastInLineArr[lineIndex] = i; + lineIndex++; + curLineSizeArr[lineIndex] = sz; + + if (MathHelper.GreaterThan(sz.U, uvFinalSize.U)) //the element is wider then the constraint - give it a separate line + { + //switch to next line which only contain one element + lastInLineArr[lineIndex] = i; + lineIndex++; + curLineSizeArr[lineIndex] = new UVSize(FlexDirection); + } + } + else //continue to accumulate a line + { + curLineSizeArr[lineIndex].U += sz.U; + curLineSizeArr[lineIndex].V = Math.Max(sz.V, curLineSizeArr[lineIndex].V); + } + } + } + + // init status + var scaleU = Math.Min(_uvConstraint.U / uvFinalSize.U, 1); + var firstInLine = 0; + var wrapReverseFlag = FlexWrap == FlexWrap.WrapReverse ? -1 : 1; + var wrapReverseAdd = FlexWrap == FlexWrap.WrapReverse ? 1 : 0; + var itemsU = .0; + var accumulatedV = .0; + + // calculate free V space + var freeV = uvFinalSize.V; + foreach (var flexSize in curLineSizeArr) + { + freeV -= flexSize.V; + } + + var lineFreeVArr = new double[_lineCount]; + switch (AlignContent) + { + case FlexContentAlignment.Stretch: + { + var freeItemV = freeV / _lineCount; + for (var i = 0; i < _lineCount; i++) + { + lineFreeVArr[i] = freeItemV; + } + + accumulatedV = FlexWrap == FlexWrap.WrapReverse ? uvFinalSize.V - curLineSizeArr[0].V : 0; + } + break; + case FlexContentAlignment.FlexStart: + accumulatedV = FlexWrap == FlexWrap.WrapReverse ? uvFinalSize.V - curLineSizeArr[0].V : 0; + break; + case FlexContentAlignment.FlexEnd: + accumulatedV = FlexWrap == FlexWrap.WrapReverse ? uvFinalSize.V - curLineSizeArr[0].V - freeV : freeV; + break; + case FlexContentAlignment.Center: + accumulatedV = FlexWrap == FlexWrap.WrapReverse ? uvFinalSize.V - curLineSizeArr[0].V - freeV * 0.5 : freeV * 0.5; + break; + case FlexContentAlignment.SpaceBetween: + { + var freeItemV = freeV / (_lineCount - 1); + for (var i = 0; i < _lineCount - 1; i++) + { + lineFreeVArr[i] = freeItemV; + } + + accumulatedV = FlexWrap == FlexWrap.WrapReverse ? uvFinalSize.V - curLineSizeArr[0].V : 0; + } + break; + case FlexContentAlignment.SpaceAround: + { + var freeItemV = freeV / _lineCount * 0.5; + for (var i = 0; i < _lineCount - 1; i++) + { + lineFreeVArr[i] = freeItemV * 2; + } + + accumulatedV = FlexWrap == FlexWrap.WrapReverse ? uvFinalSize.V - curLineSizeArr[0].V - freeItemV : freeItemV; + } + break; + } + + // clear status + lineIndex = 0; + + //arrange line + for (var i = 0; i < children.Count; i++) + { + var child = children[i]; + if (child == null) continue; + + var sz = new UVSize(FlexDirection, child.DesiredSize); + + if (FlexWrap != FlexWrap.NoWrap) + { + if (i >= lastInLineArr[lineIndex]) //need to switch to another line + { + ArrangeLine(new FlexLineInfo + { + ItemsU = itemsU, + OffsetV = accumulatedV, + LineV = curLineSizeArr[lineIndex].V, + LineU = uvFinalSize.U, + ItemStartIndex = firstInLine, + ItemEndIndex = i, + ScaleU = scaleU + }); + + accumulatedV += (lineFreeVArr[lineIndex] + curLineSizeArr[lineIndex + wrapReverseAdd].V) * wrapReverseFlag; + lineIndex++; + itemsU = 0; + + if (i >= lastInLineArr[lineIndex]) //the element is wider then the constraint - give it a separate line + { + //switch to next line which only contain one element + ArrangeLine(new FlexLineInfo + { + ItemsU = itemsU, + OffsetV = accumulatedV, + LineV = curLineSizeArr[lineIndex].V, + LineU = uvFinalSize.U, + ItemStartIndex = i, + ItemEndIndex = ++i, + ScaleU = scaleU + }); + + accumulatedV += (lineFreeVArr[lineIndex] + curLineSizeArr[lineIndex + wrapReverseAdd].V) * wrapReverseFlag; + lineIndex++; + itemsU = 0; + } + firstInLine = i; + } + } + + itemsU += sz.U; + } + + //arrange the last line, if any + if (firstInLine < children.Count) + { + ArrangeLine(new FlexLineInfo + { + ItemsU = itemsU, + OffsetV = accumulatedV, + LineV = curLineSizeArr[lineIndex].V, + LineU = uvFinalSize.U, + ItemStartIndex = firstInLine, + ItemEndIndex = children.Count, + ScaleU = scaleU + }); + } + + return arrangeSize; + } + + private void ArrangeLine(FlexLineInfo lineInfo) + { + var isHorizontal = FlexDirection == FlexDirection.Row || FlexDirection == FlexDirection.RowReverse; + var isReverse = FlexDirection == FlexDirection.RowReverse || FlexDirection == FlexDirection.ColumnReverse; + + //calculate initial u + var u = .0; + if (isReverse) + { + u = JustifyContent switch + { + FlexContentJustify.FlexStart => lineInfo.LineU, + FlexContentJustify.SpaceBetween => lineInfo.LineU, + FlexContentJustify.SpaceAround => lineInfo.LineU, + FlexContentJustify.FlexEnd => lineInfo.ItemsU, + FlexContentJustify.Center => (lineInfo.LineU + lineInfo.ItemsU) * 0.5, + _ => u + }; + } + else + { + u = JustifyContent switch + { + FlexContentJustify.FlexEnd => lineInfo.LineU - lineInfo.ItemsU, + FlexContentJustify.Center => (lineInfo.LineU - lineInfo.ItemsU) * 0.5, + _ => u + }; + } + u *= lineInfo.ScaleU; + + // calculate offset u + var itemCount = lineInfo.ItemEndIndex - lineInfo.ItemStartIndex; + var offsetUArr = new double[itemCount]; + if (JustifyContent == FlexContentJustify.SpaceBetween) + { + var freeItemU = (lineInfo.LineU - lineInfo.ItemsU) / (itemCount - 1); + for (var i = 1; i < itemCount; i++) + { + offsetUArr[i] = freeItemU; + } + } + else if (JustifyContent == FlexContentJustify.SpaceAround) + { + var freeItemU = (lineInfo.LineU - lineInfo.ItemsU) / itemCount * 0.5; + offsetUArr[0] = freeItemU; + for (var i = 1; i < itemCount; i++) + { + offsetUArr[i] = freeItemU * 2; + } + } + + var children = InternalChildren; + for (int i = lineInfo.ItemStartIndex, j = 0; i < lineInfo.ItemEndIndex; i++, j++) + { + var child = children[i]; + if (child == null) continue; + + var childSize = new UVSize(FlexDirection, isHorizontal ? + new Size(child.DesiredSize.Width * lineInfo.ScaleU, child.DesiredSize.Height) : + new Size(child.DesiredSize.Width, child.DesiredSize.Height * lineInfo.ScaleU)); + + if (isReverse) + { + u -= childSize.U; + u -= offsetUArr[j]; + } + else + { + u += offsetUArr[j]; + } + + var v = lineInfo.OffsetV; + switch (AlignItems) + { + case FlexItemsAlignment.Stretch: + childSize.V = lineInfo.LineV; + break; + case FlexItemsAlignment.FlexEnd: + v += lineInfo.LineV - childSize.V; + break; + case FlexItemsAlignment.Center: + v += (lineInfo.LineV - childSize.V) * 0.5; + break; + } + + child.Arrange(isHorizontal ? new Rect(u, v, childSize.U, childSize.V) : new Rect(v, u, childSize.V, childSize.U)); + + if (!isReverse) + { + u += childSize.U; + } + } + } + + private struct FlexLineInfo + { + public double ItemsU { get; set; } + + public double OffsetV { get; set; } + + public double LineU { get; set; } + + public double LineV { get; set; } + + public int ItemStartIndex { get; set; } + + public int ItemEndIndex { get; set; } + + public double ScaleU { get; set; } + } + + private struct UVSize + { + public UVSize(FlexDirection direction, Size size) + { + U = V = 0d; + FlexDirection = direction; + Width = size.Width; + Height = size.Height; + } + + public UVSize(FlexDirection direction) + { + U = V = 0d; + FlexDirection = direction; + } + + public double U { get; set; } + + public double V { get; set; } + + private FlexDirection FlexDirection { get; } + + public double Width + { + get => FlexDirection == FlexDirection.Row || FlexDirection == FlexDirection.RowReverse ? U : V; + private set + { + if (FlexDirection == FlexDirection.Row || FlexDirection == FlexDirection.RowReverse) + { + U = value; + } + else + { + V = value; + } + } + } + + public double Height + { + get => FlexDirection == FlexDirection.Row || FlexDirection == FlexDirection.RowReverse ? V : U; + private set + { + if (FlexDirection == FlexDirection.Row || FlexDirection == FlexDirection.RowReverse) + { + V = value; + } + else + { + U = value; + } + } + } + } } } diff --git a/src/Shared/HandyControl_Shared/Data/Flex/FlexContentAlignment.cs b/src/Shared/HandyControl_Shared/Data/Flex/FlexContentAlignment.cs index e6ec5f0b..965ce360 100644 --- a/src/Shared/HandyControl_Shared/Data/Flex/FlexContentAlignment.cs +++ b/src/Shared/HandyControl_Shared/Data/Flex/FlexContentAlignment.cs @@ -2,11 +2,11 @@ { public enum FlexContentAlignment { + Stretch, FlexStart, FlexEnd, Center, SpaceBetween, - SpaceAround, - Stretch + SpaceAround } } \ No newline at end of file diff --git a/src/Shared/HandyControl_Shared/Data/Flex/FlexOrientation.cs b/src/Shared/HandyControl_Shared/Data/Flex/FlexDirection.cs similarity index 78% rename from src/Shared/HandyControl_Shared/Data/Flex/FlexOrientation.cs rename to src/Shared/HandyControl_Shared/Data/Flex/FlexDirection.cs index 6f22ed48..6d3b0d85 100644 --- a/src/Shared/HandyControl_Shared/Data/Flex/FlexOrientation.cs +++ b/src/Shared/HandyControl_Shared/Data/Flex/FlexDirection.cs @@ -1,6 +1,6 @@ namespace HandyControl.Data { - public enum FlexOrientation + public enum FlexDirection { Row, RowReverse, diff --git a/src/Shared/HandyControl_Shared/Data/Flex/FlexItemsAlignment.cs b/src/Shared/HandyControl_Shared/Data/Flex/FlexItemsAlignment.cs index 6c0549e6..c51b62d3 100644 --- a/src/Shared/HandyControl_Shared/Data/Flex/FlexItemsAlignment.cs +++ b/src/Shared/HandyControl_Shared/Data/Flex/FlexItemsAlignment.cs @@ -2,10 +2,10 @@ { public enum FlexItemsAlignment { + Stretch, FlexStart, FlexEnd, Center, - Baseline, - Stretch + Baseline } } diff --git a/src/Shared/HandyControl_Shared/Data/Flex/FlexWrapping.cs b/src/Shared/HandyControl_Shared/Data/Flex/FlexWrap.cs similarity index 76% rename from src/Shared/HandyControl_Shared/Data/Flex/FlexWrapping.cs rename to src/Shared/HandyControl_Shared/Data/Flex/FlexWrap.cs index 47144849..de1cfc9b 100644 --- a/src/Shared/HandyControl_Shared/Data/Flex/FlexWrapping.cs +++ b/src/Shared/HandyControl_Shared/Data/Flex/FlexWrap.cs @@ -1,6 +1,6 @@ namespace HandyControl.Data { - public enum FlexWrapping + public enum FlexWrap { NoWrap, Wrap, diff --git a/src/Shared/HandyControl_Shared/HandyControl_Shared.projitems b/src/Shared/HandyControl_Shared/HandyControl_Shared.projitems index 17ffb4ba..f8401064 100644 --- a/src/Shared/HandyControl_Shared/HandyControl_Shared.projitems +++ b/src/Shared/HandyControl_Shared/HandyControl_Shared.projitems @@ -78,8 +78,8 @@ - - + + From 0d486653e6b1fe241049cf17984b586b390926a3 Mon Sep 17 00:00:00 2001 From: NaBian <836904362@qq.com> Date: Sat, 5 Sep 2020 00:36:24 +0800 Subject: [PATCH 05/24] Update FlexPanel.cs --- .../Controls/Panel/FlexPanel.cs | 137 ++++++++++++++---- 1 file changed, 106 insertions(+), 31 deletions(-) diff --git a/src/Shared/HandyControl_Shared/Controls/Panel/FlexPanel.cs b/src/Shared/HandyControl_Shared/Controls/Panel/FlexPanel.cs index f4f3b0f6..a0cdb218 100644 --- a/src/Shared/HandyControl_Shared/Controls/Panel/FlexPanel.cs +++ b/src/Shared/HandyControl_Shared/Controls/Panel/FlexPanel.cs @@ -12,6 +12,8 @@ namespace HandyControl.Controls private int _lineCount; + #region Item + public static readonly DependencyProperty OrderProperty = DependencyProperty.RegisterAttached( "Order", typeof(int), typeof(FlexPanel), new FrameworkPropertyMetadata(ValueBoxes.Int0Box, FrameworkPropertyMetadataOptions.AffectsMeasure)); @@ -54,6 +56,10 @@ namespace HandyControl.Controls public static void SetAlignSelf(DependencyObject element, FlexItemAlignment value) => element.SetValue(AlignSelfProperty, value); + #endregion + + #region Panel + public static FlexItemAlignment GetAlignSelf(DependencyObject element) => (FlexItemAlignment)element.GetValue(AlignSelfProperty); @@ -102,6 +108,8 @@ namespace HandyControl.Controls set => SetValue(AlignContentProperty, value); } + #endregion + protected override Size MeasureOverride(Size constraint) { var curLineSize = new UVSize(FlexDirection); @@ -184,7 +192,7 @@ namespace HandyControl.Controls if (FlexWrap == FlexWrap.NoWrap) { curLineSizeArr[lineIndex].U += sz.U; - curLineSizeArr[lineIndex].V = uvFinalSize.V; + curLineSizeArr[lineIndex].V = Math.Max(sz.V, curLineSizeArr[lineIndex].V); } else { @@ -213,61 +221,116 @@ namespace HandyControl.Controls // init status var scaleU = Math.Min(_uvConstraint.U / uvFinalSize.U, 1); var firstInLine = 0; + var wrapReverseAdd = 0; var wrapReverseFlag = FlexWrap == FlexWrap.WrapReverse ? -1 : 1; - var wrapReverseAdd = FlexWrap == FlexWrap.WrapReverse ? 1 : 0; + var accumulatedFlag = FlexWrap == FlexWrap.WrapReverse ? 1 : 0; var itemsU = .0; var accumulatedV = .0; - - // calculate free V space + var freeItemV = .0; var freeV = uvFinalSize.V; foreach (var flexSize in curLineSizeArr) { freeV -= flexSize.V; } + // calculate status var lineFreeVArr = new double[_lineCount]; switch (AlignContent) { case FlexContentAlignment.Stretch: { - var freeItemV = freeV / _lineCount; - for (var i = 0; i < _lineCount; i++) + if (_lineCount > 1) { - lineFreeVArr[i] = freeItemV; - } + freeItemV = freeV / _lineCount; + for (var i = 0; i < _lineCount; i++) + { + lineFreeVArr[i] = freeItemV; + } - accumulatedV = FlexWrap == FlexWrap.WrapReverse ? uvFinalSize.V - curLineSizeArr[0].V : 0; + accumulatedV = FlexWrap == FlexWrap.WrapReverse ? uvFinalSize.V - curLineSizeArr[0].V - lineFreeVArr[0] : 0; + } + else + { + freeItemV = freeV; + } } break; case FlexContentAlignment.FlexStart: - accumulatedV = FlexWrap == FlexWrap.WrapReverse ? uvFinalSize.V - curLineSizeArr[0].V : 0; + if (FlexWrap == FlexWrap.WrapReverse) + { + wrapReverseAdd = 1; + } + + if (_lineCount > 1) + { + accumulatedV = FlexWrap == FlexWrap.WrapReverse ? uvFinalSize.V - curLineSizeArr[0].V : 0; + } + else + { + wrapReverseAdd = 0; + freeItemV = freeV; + } break; case FlexContentAlignment.FlexEnd: - accumulatedV = FlexWrap == FlexWrap.WrapReverse ? uvFinalSize.V - curLineSizeArr[0].V - freeV : freeV; + if (FlexWrap != FlexWrap.WrapReverse) + { + wrapReverseAdd = 1; + } + + if (_lineCount > 1) + { + accumulatedV = FlexWrap == FlexWrap.WrapReverse ? uvFinalSize.V - curLineSizeArr[0].V - freeV : freeV; + } + else + { + wrapReverseAdd = 0; + freeItemV = freeV; + } break; case FlexContentAlignment.Center: - accumulatedV = FlexWrap == FlexWrap.WrapReverse ? uvFinalSize.V - curLineSizeArr[0].V - freeV * 0.5 : freeV * 0.5; + if (_lineCount > 1) + { + accumulatedV = FlexWrap == FlexWrap.WrapReverse ? uvFinalSize.V - curLineSizeArr[0].V - freeV * 0.5 : freeV * 0.5; + } + else + { + freeItemV = freeV; + } break; case FlexContentAlignment.SpaceBetween: { - var freeItemV = freeV / (_lineCount - 1); - for (var i = 0; i < _lineCount - 1; i++) + if (_lineCount > 1) { - lineFreeVArr[i] = freeItemV; - } + freeItemV = freeV / (_lineCount - 1); + for (var i = 0; i < _lineCount - 1; i++) + { + lineFreeVArr[i] = freeItemV; + } - accumulatedV = FlexWrap == FlexWrap.WrapReverse ? uvFinalSize.V - curLineSizeArr[0].V : 0; + accumulatedV = FlexWrap == FlexWrap.WrapReverse ? uvFinalSize.V - curLineSizeArr[0].V : 0; + } + else + { + freeItemV = freeV; + } } break; case FlexContentAlignment.SpaceAround: { - var freeItemV = freeV / _lineCount * 0.5; - for (var i = 0; i < _lineCount - 1; i++) + if (_lineCount > 1) { - lineFreeVArr[i] = freeItemV * 2; - } + freeItemV = freeV / _lineCount * 0.5; + for (var i = 0; i < _lineCount - 1; i++) + { + lineFreeVArr[i] = freeItemV * 2; + } - accumulatedV = FlexWrap == FlexWrap.WrapReverse ? uvFinalSize.V - curLineSizeArr[0].V - freeItemV : freeItemV; + accumulatedV = FlexWrap == FlexWrap.WrapReverse ? uvFinalSize.V - curLineSizeArr[0].V - freeItemV : freeItemV; + } + else + { + freeItemV = freeV; + } } break; } @@ -275,7 +338,7 @@ namespace HandyControl.Controls // clear status lineIndex = 0; - //arrange line + // arrange line for (var i = 0; i < children.Count; i++) { var child = children[i]; @@ -290,15 +353,16 @@ namespace HandyControl.Controls ArrangeLine(new FlexLineInfo { ItemsU = itemsU, - OffsetV = accumulatedV, + OffsetV = accumulatedV + freeItemV * wrapReverseAdd, LineV = curLineSizeArr[lineIndex].V, + LineFreeV = freeItemV, LineU = uvFinalSize.U, ItemStartIndex = firstInLine, ItemEndIndex = i, ScaleU = scaleU }); - accumulatedV += (lineFreeVArr[lineIndex] + curLineSizeArr[lineIndex + wrapReverseAdd].V) * wrapReverseFlag; + accumulatedV += (lineFreeVArr[lineIndex] + curLineSizeArr[lineIndex + accumulatedFlag].V) * wrapReverseFlag; lineIndex++; itemsU = 0; @@ -308,15 +372,16 @@ namespace HandyControl.Controls ArrangeLine(new FlexLineInfo { ItemsU = itemsU, - OffsetV = accumulatedV, + OffsetV = accumulatedV + freeItemV * wrapReverseAdd, LineV = curLineSizeArr[lineIndex].V, + LineFreeV = freeItemV, LineU = uvFinalSize.U, ItemStartIndex = i, ItemEndIndex = ++i, ScaleU = scaleU }); - accumulatedV += (lineFreeVArr[lineIndex] + curLineSizeArr[lineIndex + wrapReverseAdd].V) * wrapReverseFlag; + accumulatedV += (lineFreeVArr[lineIndex] + curLineSizeArr[lineIndex + accumulatedFlag].V) * wrapReverseFlag; lineIndex++; itemsU = 0; } @@ -327,14 +392,15 @@ namespace HandyControl.Controls itemsU += sz.U; } - //arrange the last line, if any + // arrange the last line, if any if (firstInLine < children.Count) { ArrangeLine(new FlexLineInfo { ItemsU = itemsU, - OffsetV = accumulatedV, + OffsetV = accumulatedV + freeItemV * wrapReverseAdd, LineV = curLineSizeArr[lineIndex].V, + LineFreeV = freeItemV, LineU = uvFinalSize.U, ItemStartIndex = firstInLine, ItemEndIndex = children.Count, @@ -350,7 +416,7 @@ namespace HandyControl.Controls var isHorizontal = FlexDirection == FlexDirection.Row || FlexDirection == FlexDirection.RowReverse; var isReverse = FlexDirection == FlexDirection.RowReverse || FlexDirection == FlexDirection.ColumnReverse; - //calculate initial u + // calculate initial u var u = .0; if (isReverse) { @@ -420,7 +486,14 @@ namespace HandyControl.Controls switch (AlignItems) { case FlexItemsAlignment.Stretch: - childSize.V = lineInfo.LineV; + if (_lineCount == 1 && FlexWrap == FlexWrap.NoWrap) + { + childSize.V = lineInfo.LineV + lineInfo.LineFreeV; + } + else + { + childSize.V = lineInfo.LineV; + } break; case FlexItemsAlignment.FlexEnd: v += lineInfo.LineV - childSize.V; @@ -449,6 +522,8 @@ namespace HandyControl.Controls public double LineV { get; set; } + public double LineFreeV { get; set; } + public int ItemStartIndex { get; set; } public int ItemEndIndex { get; set; } From 8fb493049877e731a2ab4ecdaacbb585837d6d18 Mon Sep 17 00:00:00 2001 From: NaBian <836904362@qq.com> Date: Sat, 5 Sep 2020 01:15:09 +0800 Subject: [PATCH 06/24] implemented order prop --- .../Controls/Panel/FlexPanel.cs | 55 ++++++++++++++++--- 1 file changed, 46 insertions(+), 9 deletions(-) diff --git a/src/Shared/HandyControl_Shared/Controls/Panel/FlexPanel.cs b/src/Shared/HandyControl_Shared/Controls/Panel/FlexPanel.cs index a0cdb218..20056e1e 100644 --- a/src/Shared/HandyControl_Shared/Controls/Panel/FlexPanel.cs +++ b/src/Shared/HandyControl_Shared/Controls/Panel/FlexPanel.cs @@ -1,6 +1,8 @@ using System; +using System.Collections.Generic; using System.Windows; using System.Windows.Controls; +using System.Windows.Media; using HandyControl.Data; using HandyControl.Expression.Drawing; @@ -12,10 +14,12 @@ namespace HandyControl.Controls private int _lineCount; + private readonly List _orderList = new List(); + #region Item public static readonly DependencyProperty OrderProperty = DependencyProperty.RegisterAttached( - "Order", typeof(int), typeof(FlexPanel), new FrameworkPropertyMetadata(ValueBoxes.Int0Box, FrameworkPropertyMetadataOptions.AffectsMeasure)); + "Order", typeof(int), typeof(FlexPanel), new FrameworkPropertyMetadata(ValueBoxes.Int0Box, OnItemPropertyChanged)); public static void SetOrder(DependencyObject element, int value) => element.SetValue(OrderProperty, value); @@ -24,7 +28,7 @@ namespace HandyControl.Controls => (int)element.GetValue(OrderProperty); public static readonly DependencyProperty FlexGrowProperty = DependencyProperty.RegisterAttached( - "FlexGrow", typeof(double), typeof(FlexPanel), new FrameworkPropertyMetadata(ValueBoxes.Double0Box, FrameworkPropertyMetadataOptions.AffectsMeasure)); + "FlexGrow", typeof(double), typeof(FlexPanel), new FrameworkPropertyMetadata(ValueBoxes.Double0Box, OnItemPropertyChanged)); public static void SetFlexGrow(DependencyObject element, double value) => element.SetValue(FlexGrowProperty, value); @@ -33,7 +37,7 @@ namespace HandyControl.Controls => (double)element.GetValue(FlexGrowProperty); public static readonly DependencyProperty FlexShrinkProperty = DependencyProperty.RegisterAttached( - "FlexShrink", typeof(double), typeof(FlexPanel), new FrameworkPropertyMetadata(ValueBoxes.Double1Box, FrameworkPropertyMetadataOptions.AffectsMeasure)); + "FlexShrink", typeof(double), typeof(FlexPanel), new FrameworkPropertyMetadata(ValueBoxes.Double1Box, OnItemPropertyChanged)); public static void SetFlexShrink(DependencyObject element, double value) => element.SetValue(FlexShrinkProperty, value); @@ -42,7 +46,7 @@ namespace HandyControl.Controls => (double)element.GetValue(FlexShrinkProperty); public static readonly DependencyProperty FlexBasisProperty = DependencyProperty.RegisterAttached( - "FlexBasis", typeof(double), typeof(FlexPanel), new FrameworkPropertyMetadata(double.NaN, FrameworkPropertyMetadataOptions.AffectsMeasure)); + "FlexBasis", typeof(double), typeof(FlexPanel), new FrameworkPropertyMetadata(double.NaN, OnItemPropertyChanged)); public static void SetFlexBasis(DependencyObject element, double value) => element.SetValue(FlexBasisProperty, value); @@ -51,7 +55,7 @@ namespace HandyControl.Controls => (double)element.GetValue(FlexBasisProperty); public static readonly DependencyProperty AlignSelfProperty = DependencyProperty.RegisterAttached( - "AlignSelf", typeof(FlexItemAlignment), typeof(FlexPanel), new FrameworkPropertyMetadata(default(FlexItemAlignment), FrameworkPropertyMetadataOptions.AffectsMeasure)); + "AlignSelf", typeof(FlexItemAlignment), typeof(FlexPanel), new FrameworkPropertyMetadata(default(FlexItemAlignment), OnItemPropertyChanged)); public static void SetAlignSelf(DependencyObject element, FlexItemAlignment value) => element.SetValue(AlignSelfProperty, value); @@ -110,17 +114,33 @@ namespace HandyControl.Controls #endregion + private static void OnItemPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + if (d is UIElement element) + { + if (VisualTreeHelper.GetParent(element) is FlexPanel p) + { + p.InvalidateMeasure(); + } + } + } + protected override Size MeasureOverride(Size constraint) { + _orderList.Clear(); var curLineSize = new UVSize(FlexDirection); var panelSize = new UVSize(FlexDirection); _uvConstraint = new UVSize(FlexDirection, constraint); var childConstraint = new Size(constraint.Width, constraint.Height); _lineCount = 1; + var children = InternalChildren; - foreach (UIElement child in InternalChildren) + for (var i = 0; i < children.Count; i++) { + var child = children[i]; if (child == null) continue; + + _orderList.Add(new FlexItemInfo(i, GetOrder(child))); child.Measure(childConstraint); var sz = new UVSize(FlexDirection, child.DesiredSize); @@ -155,6 +175,8 @@ namespace HandyControl.Controls } } + _orderList.Sort(); + //the last line size, if any should be added panelSize.U = Math.Max(curLineSize.U, panelSize.U); panelSize.V += curLineSize.V; @@ -184,7 +206,7 @@ namespace HandyControl.Controls // calculate line max U space for (var i = 0; i < children.Count; i++) { - var child = children[i]; + var child = children[_orderList[i].Index]; if (child == null) continue; var sz = new UVSize(FlexDirection, child.DesiredSize); @@ -341,7 +363,7 @@ namespace HandyControl.Controls // arrange line for (var i = 0; i < children.Count; i++) { - var child = children[i]; + var child = children[_orderList[i].Index]; if (child == null) continue; var sz = new UVSize(FlexDirection, child.DesiredSize); @@ -465,7 +487,7 @@ namespace HandyControl.Controls var children = InternalChildren; for (int i = lineInfo.ItemStartIndex, j = 0; i < lineInfo.ItemEndIndex; i++, j++) { - var child = children[i]; + var child = children[_orderList[i].Index]; if (child == null) continue; var childSize = new UVSize(FlexDirection, isHorizontal ? @@ -512,6 +534,21 @@ namespace HandyControl.Controls } } + private readonly struct FlexItemInfo : IComparable + { + public FlexItemInfo(int index, int order) + { + Index = index; + Order = order; + } + + private int Order { get; } + + public int Index { get; } + + public int CompareTo(FlexItemInfo other) => Order.CompareTo(other.Order); + } + private struct FlexLineInfo { public double ItemsU { get; set; } From 0cc7c097da793f43acd2488e10b6258fb084d681 Mon Sep 17 00:00:00 2001 From: NaBian <836904362@qq.com> Date: Sat, 5 Sep 2020 12:34:09 +0800 Subject: [PATCH 07/24] implemented AlignSelf prop --- .../Controls/Panel/FlexPanel.cs | 90 +++++++++---------- 1 file changed, 42 insertions(+), 48 deletions(-) diff --git a/src/Shared/HandyControl_Shared/Controls/Panel/FlexPanel.cs b/src/Shared/HandyControl_Shared/Controls/Panel/FlexPanel.cs index 20056e1e..996c5622 100644 --- a/src/Shared/HandyControl_Shared/Controls/Panel/FlexPanel.cs +++ b/src/Shared/HandyControl_Shared/Controls/Panel/FlexPanel.cs @@ -5,6 +5,7 @@ using System.Windows.Controls; using System.Windows.Media; using HandyControl.Data; using HandyControl.Expression.Drawing; +using HandyControl.Tools; namespace HandyControl.Controls { @@ -28,7 +29,7 @@ namespace HandyControl.Controls => (int)element.GetValue(OrderProperty); public static readonly DependencyProperty FlexGrowProperty = DependencyProperty.RegisterAttached( - "FlexGrow", typeof(double), typeof(FlexPanel), new FrameworkPropertyMetadata(ValueBoxes.Double0Box, OnItemPropertyChanged)); + "FlexGrow", typeof(double), typeof(FlexPanel), new FrameworkPropertyMetadata(ValueBoxes.Double0Box, OnItemPropertyChanged), ValidateHelper.IsInRangeOfPosDoubleIncludeZero); public static void SetFlexGrow(DependencyObject element, double value) => element.SetValue(FlexGrowProperty, value); @@ -127,7 +128,6 @@ namespace HandyControl.Controls protected override Size MeasureOverride(Size constraint) { - _orderList.Clear(); var curLineSize = new UVSize(FlexDirection); var panelSize = new UVSize(FlexDirection); _uvConstraint = new UVSize(FlexDirection, constraint); @@ -135,12 +135,21 @@ namespace HandyControl.Controls _lineCount = 1; var children = InternalChildren; + _orderList.Clear(); for (var i = 0; i < children.Count; i++) { var child = children[i]; if (child == null) continue; _orderList.Add(new FlexItemInfo(i, GetOrder(child))); + } + _orderList.Sort(); + + for (var i = 0; i < children.Count; i++) + { + var child = children[_orderList[i].Index]; + if (child == null) continue; + child.Measure(childConstraint); var sz = new UVSize(FlexDirection, child.DesiredSize); @@ -175,8 +184,6 @@ namespace HandyControl.Controls } } - _orderList.Sort(); - //the last line size, if any should be added panelSize.U = Math.Max(curLineSize.U, panelSize.U); panelSize.V += curLineSize.V; @@ -248,33 +255,27 @@ namespace HandyControl.Controls var accumulatedFlag = FlexWrap == FlexWrap.WrapReverse ? 1 : 0; var itemsU = .0; var accumulatedV = .0; - var freeItemV = .0; var freeV = uvFinalSize.V; foreach (var flexSize in curLineSizeArr) { freeV -= flexSize.V; } + var freeItemV = freeV; // calculate status var lineFreeVArr = new double[_lineCount]; switch (AlignContent) { case FlexContentAlignment.Stretch: + if (_lineCount > 1) { - if (_lineCount > 1) + freeItemV = freeV / _lineCount; + for (var i = 0; i < _lineCount; i++) { - freeItemV = freeV / _lineCount; - for (var i = 0; i < _lineCount; i++) - { - lineFreeVArr[i] = freeItemV; - } + lineFreeVArr[i] = freeItemV; + } - accumulatedV = FlexWrap == FlexWrap.WrapReverse ? uvFinalSize.V - curLineSizeArr[0].V - lineFreeVArr[0] : 0; - } - else - { - freeItemV = freeV; - } + accumulatedV = FlexWrap == FlexWrap.WrapReverse ? uvFinalSize.V - curLineSizeArr[0].V - lineFreeVArr[0] : 0; } break; case FlexContentAlignment.FlexStart: @@ -290,7 +291,6 @@ namespace HandyControl.Controls else { wrapReverseAdd = 0; - freeItemV = freeV; } break; case FlexContentAlignment.FlexEnd: @@ -306,7 +306,6 @@ namespace HandyControl.Controls else { wrapReverseAdd = 0; - freeItemV = freeV; } break; case FlexContentAlignment.Center: @@ -314,45 +313,29 @@ namespace HandyControl.Controls { accumulatedV = FlexWrap == FlexWrap.WrapReverse ? uvFinalSize.V - curLineSizeArr[0].V - freeV * 0.5 : freeV * 0.5; } - else - { - freeItemV = freeV; - } break; case FlexContentAlignment.SpaceBetween: + if (_lineCount > 1) { - if (_lineCount > 1) + freeItemV = freeV / (_lineCount - 1); + for (var i = 0; i < _lineCount - 1; i++) { - freeItemV = freeV / (_lineCount - 1); - for (var i = 0; i < _lineCount - 1; i++) - { - lineFreeVArr[i] = freeItemV; - } + lineFreeVArr[i] = freeItemV; + } - accumulatedV = FlexWrap == FlexWrap.WrapReverse ? uvFinalSize.V - curLineSizeArr[0].V : 0; - } - else - { - freeItemV = freeV; - } + accumulatedV = FlexWrap == FlexWrap.WrapReverse ? uvFinalSize.V - curLineSizeArr[0].V : 0; } break; case FlexContentAlignment.SpaceAround: + if (_lineCount > 1) { - if (_lineCount > 1) + freeItemV = freeV / _lineCount * 0.5; + for (var i = 0; i < _lineCount - 1; i++) { - freeItemV = freeV / _lineCount * 0.5; - for (var i = 0; i < _lineCount - 1; i++) - { - lineFreeVArr[i] = freeItemV * 2; - } + lineFreeVArr[i] = freeItemV * 2; + } - accumulatedV = FlexWrap == FlexWrap.WrapReverse ? uvFinalSize.V - curLineSizeArr[0].V - freeItemV : freeItemV; - } - else - { - freeItemV = freeV; - } + accumulatedV = FlexWrap == FlexWrap.WrapReverse ? uvFinalSize.V - curLineSizeArr[0].V - freeItemV : freeItemV; } break; } @@ -505,7 +488,18 @@ namespace HandyControl.Controls } var v = lineInfo.OffsetV; - switch (AlignItems) + var alignSelf = GetAlignSelf(child); + FlexItemsAlignment alignment; + if (alignSelf == FlexItemAlignment.Auto) + { + alignment = AlignItems; + } + else + { + alignment = (FlexItemsAlignment)alignSelf; + } + + switch (alignment) { case FlexItemsAlignment.Stretch: if (_lineCount == 1 && FlexWrap == FlexWrap.NoWrap) From d07e1a3d874b6f189972f0a3a6782688a2813193 Mon Sep 17 00:00:00 2001 From: NaBian <836904362@qq.com> Date: Sat, 5 Sep 2020 14:51:27 +0800 Subject: [PATCH 08/24] completed the branch --- .../Controls/Panel/FlexPanel.cs | 197 +++++++++++++----- 1 file changed, 147 insertions(+), 50 deletions(-) diff --git a/src/Shared/HandyControl_Shared/Controls/Panel/FlexPanel.cs b/src/Shared/HandyControl_Shared/Controls/Panel/FlexPanel.cs index 996c5622..dd4b60b3 100644 --- a/src/Shared/HandyControl_Shared/Controls/Panel/FlexPanel.cs +++ b/src/Shared/HandyControl_Shared/Controls/Panel/FlexPanel.cs @@ -6,6 +6,7 @@ using System.Windows.Media; using HandyControl.Data; using HandyControl.Expression.Drawing; using HandyControl.Tools; +using HandyControl.Tools.Extension; namespace HandyControl.Controls { @@ -20,7 +21,8 @@ namespace HandyControl.Controls #region Item public static readonly DependencyProperty OrderProperty = DependencyProperty.RegisterAttached( - "Order", typeof(int), typeof(FlexPanel), new FrameworkPropertyMetadata(ValueBoxes.Int0Box, OnItemPropertyChanged)); + "Order", typeof(int), typeof(FlexPanel), + new FrameworkPropertyMetadata(ValueBoxes.Int0Box, OnItemPropertyChanged)); public static void SetOrder(DependencyObject element, int value) => element.SetValue(OrderProperty, value); @@ -29,7 +31,9 @@ namespace HandyControl.Controls => (int)element.GetValue(OrderProperty); public static readonly DependencyProperty FlexGrowProperty = DependencyProperty.RegisterAttached( - "FlexGrow", typeof(double), typeof(FlexPanel), new FrameworkPropertyMetadata(ValueBoxes.Double0Box, OnItemPropertyChanged), ValidateHelper.IsInRangeOfPosDoubleIncludeZero); + "FlexGrow", typeof(double), typeof(FlexPanel), + new FrameworkPropertyMetadata(ValueBoxes.Double0Box, OnItemPropertyChanged), + ValidateHelper.IsInRangeOfPosDoubleIncludeZero); public static void SetFlexGrow(DependencyObject element, double value) => element.SetValue(FlexGrowProperty, value); @@ -38,7 +42,9 @@ namespace HandyControl.Controls => (double)element.GetValue(FlexGrowProperty); public static readonly DependencyProperty FlexShrinkProperty = DependencyProperty.RegisterAttached( - "FlexShrink", typeof(double), typeof(FlexPanel), new FrameworkPropertyMetadata(ValueBoxes.Double1Box, OnItemPropertyChanged)); + "FlexShrink", typeof(double), typeof(FlexPanel), + new FrameworkPropertyMetadata(ValueBoxes.Double1Box, OnItemPropertyChanged), + ValidateHelper.IsInRangeOfPosDoubleIncludeZero); public static void SetFlexShrink(DependencyObject element, double value) => element.SetValue(FlexShrinkProperty, value); @@ -47,7 +53,8 @@ namespace HandyControl.Controls => (double)element.GetValue(FlexShrinkProperty); public static readonly DependencyProperty FlexBasisProperty = DependencyProperty.RegisterAttached( - "FlexBasis", typeof(double), typeof(FlexPanel), new FrameworkPropertyMetadata(double.NaN, OnItemPropertyChanged)); + "FlexBasis", typeof(double), typeof(FlexPanel), + new FrameworkPropertyMetadata(double.NaN, OnItemPropertyChanged)); public static void SetFlexBasis(DependencyObject element, double value) => element.SetValue(FlexBasisProperty, value); @@ -56,7 +63,8 @@ namespace HandyControl.Controls => (double)element.GetValue(FlexBasisProperty); public static readonly DependencyProperty AlignSelfProperty = DependencyProperty.RegisterAttached( - "AlignSelf", typeof(FlexItemAlignment), typeof(FlexPanel), new FrameworkPropertyMetadata(default(FlexItemAlignment), OnItemPropertyChanged)); + "AlignSelf", typeof(FlexItemAlignment), typeof(FlexPanel), + new FrameworkPropertyMetadata(default(FlexItemAlignment), OnItemPropertyChanged)); public static void SetAlignSelf(DependencyObject element, FlexItemAlignment value) => element.SetValue(AlignSelfProperty, value); @@ -69,7 +77,8 @@ namespace HandyControl.Controls => (FlexItemAlignment)element.GetValue(AlignSelfProperty); public static readonly DependencyProperty FlexDirectionProperty = DependencyProperty.Register( - "FlexDirection", typeof(FlexDirection), typeof(FlexPanel), new FrameworkPropertyMetadata(default(FlexDirection), FrameworkPropertyMetadataOptions.AffectsMeasure)); + "FlexDirection", typeof(FlexDirection), typeof(FlexPanel), + new FrameworkPropertyMetadata(default(FlexDirection), FrameworkPropertyMetadataOptions.AffectsMeasure)); public FlexDirection FlexDirection { @@ -78,7 +87,8 @@ namespace HandyControl.Controls } public static readonly DependencyProperty FlexWrapProperty = DependencyProperty.Register( - "FlexWrap", typeof(FlexWrap), typeof(FlexPanel), new FrameworkPropertyMetadata(default(FlexWrap), FrameworkPropertyMetadataOptions.AffectsMeasure)); + "FlexWrap", typeof(FlexWrap), typeof(FlexPanel), + new FrameworkPropertyMetadata(default(FlexWrap), FrameworkPropertyMetadataOptions.AffectsMeasure)); public FlexWrap FlexWrap { @@ -87,7 +97,9 @@ namespace HandyControl.Controls } public static readonly DependencyProperty JustifyContentProperty = DependencyProperty.Register( - "JustifyContent", typeof(FlexContentJustify), typeof(FlexPanel), new FrameworkPropertyMetadata(default(FlexContentJustify), FrameworkPropertyMetadataOptions.AffectsMeasure)); + "JustifyContent", typeof(FlexContentJustify), typeof(FlexPanel), + new FrameworkPropertyMetadata(default(FlexContentJustify), + FrameworkPropertyMetadataOptions.AffectsMeasure)); public FlexContentJustify JustifyContent { @@ -96,7 +108,9 @@ namespace HandyControl.Controls } public static readonly DependencyProperty AlignItemsProperty = DependencyProperty.Register( - "AlignItems", typeof(FlexItemsAlignment), typeof(FlexPanel), new FrameworkPropertyMetadata(default(FlexItemsAlignment), FrameworkPropertyMetadataOptions.AffectsMeasure)); + "AlignItems", typeof(FlexItemsAlignment), typeof(FlexPanel), + new FrameworkPropertyMetadata(default(FlexItemsAlignment), + FrameworkPropertyMetadataOptions.AffectsMeasure)); public FlexItemsAlignment AlignItems { @@ -105,7 +119,9 @@ namespace HandyControl.Controls } public static readonly DependencyProperty AlignContentProperty = DependencyProperty.Register( - "AlignContent", typeof(FlexContentAlignment), typeof(FlexPanel), new FrameworkPropertyMetadata(default(FlexContentAlignment), FrameworkPropertyMetadataOptions.AffectsMeasure)); + "AlignContent", typeof(FlexContentAlignment), typeof(FlexPanel), + new FrameworkPropertyMetadata(default(FlexContentAlignment), + FrameworkPropertyMetadataOptions.AffectsMeasure)); public FlexContentAlignment AlignContent { @@ -143,6 +159,7 @@ namespace HandyControl.Controls _orderList.Add(new FlexItemInfo(i, GetOrder(child))); } + _orderList.Sort(); for (var i = 0; i < children.Count; i++) @@ -150,6 +167,11 @@ namespace HandyControl.Controls var child = children[_orderList[i].Index]; if (child == null) continue; + var flexBasis = GetFlexBasis(child); + if (!flexBasis.IsNaN()) + { + child.SetCurrentValue(WidthProperty, flexBasis); + } child.Measure(childConstraint); var sz = new UVSize(FlexDirection, child.DesiredSize); @@ -260,6 +282,7 @@ namespace HandyControl.Controls { freeV -= flexSize.V; } + var freeItemV = freeV; // calculate status @@ -277,13 +300,10 @@ namespace HandyControl.Controls accumulatedV = FlexWrap == FlexWrap.WrapReverse ? uvFinalSize.V - curLineSizeArr[0].V - lineFreeVArr[0] : 0; } + break; case FlexContentAlignment.FlexStart: - if (FlexWrap == FlexWrap.WrapReverse) - { - wrapReverseAdd = 1; - } - + wrapReverseAdd = FlexWrap == FlexWrap.WrapReverse ? 0 : 1; if (_lineCount > 1) { accumulatedV = FlexWrap == FlexWrap.WrapReverse ? uvFinalSize.V - curLineSizeArr[0].V : 0; @@ -292,13 +312,10 @@ namespace HandyControl.Controls { wrapReverseAdd = 0; } + break; case FlexContentAlignment.FlexEnd: - if (FlexWrap != FlexWrap.WrapReverse) - { - wrapReverseAdd = 1; - } - + wrapReverseAdd = FlexWrap == FlexWrap.WrapReverse ? 1 : 0; if (_lineCount > 1) { accumulatedV = FlexWrap == FlexWrap.WrapReverse ? uvFinalSize.V - curLineSizeArr[0].V - freeV : freeV; @@ -307,12 +324,14 @@ namespace HandyControl.Controls { wrapReverseAdd = 0; } + break; case FlexContentAlignment.Center: if (_lineCount > 1) { accumulatedV = FlexWrap == FlexWrap.WrapReverse ? uvFinalSize.V - curLineSizeArr[0].V - freeV * 0.5 : freeV * 0.5; } + break; case FlexContentAlignment.SpaceBetween: if (_lineCount > 1) @@ -325,6 +344,7 @@ namespace HandyControl.Controls accumulatedV = FlexWrap == FlexWrap.WrapReverse ? uvFinalSize.V - curLineSizeArr[0].V : 0; } + break; case FlexContentAlignment.SpaceAround: if (_lineCount > 1) @@ -337,6 +357,7 @@ namespace HandyControl.Controls accumulatedV = FlexWrap == FlexWrap.WrapReverse ? uvFinalSize.V - curLineSizeArr[0].V - freeItemV : freeItemV; } + break; } @@ -371,7 +392,8 @@ namespace HandyControl.Controls lineIndex++; itemsU = 0; - if (i >= lastInLineArr[lineIndex]) //the element is wider then the constraint - give it a separate line + if (i >= lastInLineArr[lineIndex] + ) //the element is wider then the constraint - give it a separate line { //switch to next line which only contain one element ArrangeLine(new FlexLineInfo @@ -390,6 +412,7 @@ namespace HandyControl.Controls lineIndex++; itemsU = 0; } + firstInLine = i; } } @@ -420,6 +443,10 @@ namespace HandyControl.Controls { var isHorizontal = FlexDirection == FlexDirection.Row || FlexDirection == FlexDirection.RowReverse; var isReverse = FlexDirection == FlexDirection.RowReverse || FlexDirection == FlexDirection.ColumnReverse; + var itemCount = lineInfo.ItemEndIndex - lineInfo.ItemStartIndex; + var children = InternalChildren; + var lineFreeU = lineInfo.LineU - lineInfo.ItemsU; + var constraintFreeU = _uvConstraint.U - lineInfo.ItemsU; // calculate initial u var u = .0; @@ -439,43 +466,120 @@ namespace HandyControl.Controls { u = JustifyContent switch { - FlexContentJustify.FlexEnd => lineInfo.LineU - lineInfo.ItemsU, - FlexContentJustify.Center => (lineInfo.LineU - lineInfo.ItemsU) * 0.5, + FlexContentJustify.FlexEnd => lineFreeU, + FlexContentJustify.Center => lineFreeU * 0.5, _ => u }; } + u *= lineInfo.ScaleU; - // calculate offset u - var itemCount = lineInfo.ItemEndIndex - lineInfo.ItemStartIndex; - var offsetUArr = new double[itemCount]; - if (JustifyContent == FlexContentJustify.SpaceBetween) + // apply FlexGrow + var flexGrowUArr = new double[itemCount]; + if (constraintFreeU > 0) { - var freeItemU = (lineInfo.LineU - lineInfo.ItemsU) / (itemCount - 1); - for (var i = 1; i < itemCount; i++) + var ignoreFlexGrow = true; + var flexGrowSum = .0; + + for (var i = 0; i < itemCount; i++) { - offsetUArr[i] = freeItemU; + var flexGrow = GetFlexGrow(children[_orderList[i].Index]); + ignoreFlexGrow &= MathHelper.IsVerySmall(flexGrow); + flexGrowUArr[i] = flexGrow; + flexGrowSum += flexGrow; } - } - else if (JustifyContent == FlexContentJustify.SpaceAround) - { - var freeItemU = (lineInfo.LineU - lineInfo.ItemsU) / itemCount * 0.5; - offsetUArr[0] = freeItemU; - for (var i = 1; i < itemCount; i++) + + if (!ignoreFlexGrow) { - offsetUArr[i] = freeItemU * 2; + var flexGrowItem = .0; + if (flexGrowSum > 0) + { + flexGrowItem = constraintFreeU / flexGrowSum; + lineInfo.ScaleU = 1; + lineFreeU = 0; //line free U was used up + } + + for (var i = 0; i < itemCount; i++) + { + flexGrowUArr[i] *= flexGrowItem; + } + } + else + { + flexGrowUArr = new double[itemCount]; } } - var children = InternalChildren; + // apply FlexShrink + var flexShrinkUArr = new double[itemCount]; + if (constraintFreeU < 0) + { + var ignoreFlexShrink = true; + var flexShrinkSum = .0; + + for (var i = 0; i < itemCount; i++) + { + var flexShrink = GetFlexShrink(children[_orderList[i].Index]); + ignoreFlexShrink &= MathHelper.IsVerySmall(flexShrink - 1); + flexShrinkUArr[i] = flexShrink; + flexShrinkSum += flexShrink; + } + + if (!ignoreFlexShrink) + { + var flexShrinkItem = .0; + if (flexShrinkSum > 0) + { + flexShrinkItem = constraintFreeU / flexShrinkSum; + lineInfo.ScaleU = 1; + lineFreeU = 0; //line free U was used up + } + + for (var i = 0; i < itemCount; i++) + { + flexShrinkUArr[i] *= flexShrinkItem; + } + } + else + { + flexShrinkUArr = new double[itemCount]; + } + } + + // calculate offset u + var offsetUArr = new double[itemCount]; + if (lineFreeU > 0) + { + if (JustifyContent == FlexContentJustify.SpaceBetween) + { + var freeItemU = lineFreeU / (itemCount - 1); + for (var i = 1; i < itemCount; i++) + { + offsetUArr[i] = freeItemU; + } + } + else if (JustifyContent == FlexContentJustify.SpaceAround) + { + var freeItemU = lineFreeU / itemCount * 0.5; + offsetUArr[0] = freeItemU; + for (var i = 1; i < itemCount; i++) + { + offsetUArr[i] = freeItemU * 2; + } + } + } + + // arrange item for (int i = lineInfo.ItemStartIndex, j = 0; i < lineInfo.ItemEndIndex; i++, j++) { var child = children[_orderList[i].Index]; if (child == null) continue; - var childSize = new UVSize(FlexDirection, isHorizontal ? - new Size(child.DesiredSize.Width * lineInfo.ScaleU, child.DesiredSize.Height) : - new Size(child.DesiredSize.Width, child.DesiredSize.Height * lineInfo.ScaleU)); + var childSize = new UVSize(FlexDirection, isHorizontal + ? new Size(child.DesiredSize.Width * lineInfo.ScaleU, child.DesiredSize.Height) + : new Size(child.DesiredSize.Width, child.DesiredSize.Height * lineInfo.ScaleU)); + + childSize.U += flexGrowUArr[j] + flexShrinkUArr[j]; if (isReverse) { @@ -489,15 +593,7 @@ namespace HandyControl.Controls var v = lineInfo.OffsetV; var alignSelf = GetAlignSelf(child); - FlexItemsAlignment alignment; - if (alignSelf == FlexItemAlignment.Auto) - { - alignment = AlignItems; - } - else - { - alignment = (FlexItemsAlignment)alignSelf; - } + var alignment = alignSelf == FlexItemAlignment.Auto ? AlignItems : (FlexItemsAlignment)alignSelf; switch (alignment) { @@ -510,6 +606,7 @@ namespace HandyControl.Controls { childSize.V = lineInfo.LineV; } + break; case FlexItemsAlignment.FlexEnd: v += lineInfo.LineV - childSize.V; From fc84f806dd9924ed6e068fbda2b5cf2fa756649a Mon Sep 17 00:00:00 2001 From: NaBian <836904362@qq.com> Date: Sat, 5 Sep 2020 22:11:01 +0800 Subject: [PATCH 09/24] add FlexPanel demo --- README-cn.md | 9 +- README.md | 9 +- src/HandyControl.sln | 10 +- .../HandyControlDemo_Net_40.csproj | 3 + .../HandyControlDemo_Net_GE45.csproj | 3 + .../HandyControlDemo_Code.csproj | 4 + .../Data/DemoInfo.json | 1 + .../HandyControlDemo_Shared.projitems | 7 + .../Properties/Langs/Lang.Designer.cs | 1732 +++++++++++------ .../Properties/Langs/Lang.en.resx | 3 + .../Properties/Langs/Lang.fa.resx | 3 + .../Properties/Langs/Lang.fr.resx | 7 +- .../Properties/Langs/Lang.ko-KR.resx | 3 + .../Properties/Langs/Lang.pt-BR.resx | 3 + .../Properties/Langs/Lang.resx | 3 + .../Properties/Langs/Lang.ru.resx | 3 + .../Properties/Langs/Lang.tr.resx | 3 + .../Properties/Langs/LangProvider.cs | 13 +- .../LeftMainContent/layout-FlexLayout-16.png | Bin 0 -> 121 bytes .../Controls/FlexPanelDemoCtl.xaml | 50 + .../Controls/FlexPanelDemoCtl.xaml.cs | 10 + 21 files changed, 1222 insertions(+), 657 deletions(-) create mode 100644 src/Shared/HandyControlDemo_Shared/Resources/Img/LeftMainContent/layout-FlexLayout-16.png create mode 100644 src/Shared/HandyControlDemo_Shared/UserControl/Controls/FlexPanelDemoCtl.xaml create mode 100644 src/Shared/HandyControlDemo_Shared/UserControl/Controls/FlexPanelDemoCtl.xaml.cs diff --git a/README-cn.md b/README-cn.md index 3ae6a0d6..a64f6e2c 100644 --- a/README-cn.md +++ b/README-cn.md @@ -76,6 +76,7 @@ sanshiliuxiao QJJMSK dspcjy +yaronzz ## Special thanks to @@ -124,6 +125,10 @@ Step 4: Enjoy coding ## Latest examples +### FlexPanel + +![FlexPanel](https://gitee.com/handyorg/HandyOrgResource/raw/master/HandyControl/Resources/FlexPanel.gif) + ### CheckComboBox ![CheckComboBox](https://gitee.com/handyorg/HandyOrgResource/raw/master/HandyControl/Resources/CheckComboBox.png) @@ -140,12 +145,12 @@ Step 4: Enjoy coding ![Screenshot](https://gitee.com/handyorg/HandyOrgResource/raw/master/HandyControl/Resources/Screenshot.png) +## History publication + ### GooeyEffect ![GooeyEffect](https://gitee.com/handyorg/HandyOrgResource/raw/master/HandyControl/Resources/GooeyEffect.gif) -## History publication - ### GlowWindow ![GlowWindow](https://gitee.com/handyorg/HandyOrgResource/raw/master/HandyControl/Resources/GlowWindow.png) diff --git a/README.md b/README.md index 02abb37e..fb8f84e5 100644 --- a/README.md +++ b/README.md @@ -76,6 +76,7 @@ sanshiliuxiao QJJMSK dspcjy +yaronzz ## Special thanks to @@ -124,6 +125,10 @@ Step 4: Enjoy coding ## Latest examples +### FlexPanel + +![FlexPanel](https://raw.githubusercontent.com/HandyOrg/HandyOrgResource/master/HandyControl/Resources/FlexPanel.gif) + ### CheckComboBox ![CheckComboBox](https://raw.githubusercontent.com/HandyOrg/HandyOrgResource/master/HandyControl/Resources/CheckComboBox.png) @@ -140,12 +145,12 @@ Step 4: Enjoy coding ![Screenshot](https://raw.githubusercontent.com/HandyOrg/HandyOrgResource/master/HandyControl/Resources/Screenshot.png) +## History publication + ### GooeyEffect ![GooeyEffect](https://raw.githubusercontent.com/HandyOrg/HandyOrgResource/master/HandyControl/Resources/GooeyEffect.gif) -## History publication - ### GlowWindow ![GlowWindow](https://raw.githubusercontent.com/HandyOrg/HandyOrgResource/master/HandyControl/Resources/GlowWindow.png) diff --git a/src/HandyControl.sln b/src/HandyControl.sln index bee946d8..36dc8888 100644 --- a/src/HandyControl.sln +++ b/src/HandyControl.sln @@ -3,9 +3,9 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.28729.10 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HandyControl_Net_GE45", "Net_GE45\HandyControl_Net_GE45\HandyControl_Net_GE45.csproj", "{DC966E3D-BCFF-4652-98CF-070E5494749A}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HandyControl_Net_GE45", "Net_GE45\HandyControl_Net_GE45\HandyControl_Net_GE45.csproj", "{DC966E3D-BCFF-4652-98CF-070E5494749A}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HandyControlDemo_Net_GE45", "Net_GE45\HandyControlDemo_Net_GE45\HandyControlDemo_Net_GE45.csproj", "{9A7B52E6-94BB-4E7E-BB6A-7CF6761B79A7}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HandyControlDemo_Net_GE45", "Net_GE45\HandyControlDemo_Net_GE45\HandyControlDemo_Net_GE45.csproj", "{9A7B52E6-94BB-4E7E-BB6A-7CF6761B79A7}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Net_GE45", "Net_GE45", "{2F551C62-77F7-4FA5-8AD7-FCF53E92AE08}" EndProject @@ -17,11 +17,11 @@ Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "HandyControlDemo_Shared", " EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Net_40", "Net_40", "{35E3F9C0-8924-4536-BE09-F3761FDBF066}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HandyControl_Net_40", "Net_40\HandyControl_Net_40\HandyControl_Net_40.csproj", "{32204503-2EF0-4681-AE13-AA1FEB6C658A}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HandyControl_Net_40", "Net_40\HandyControl_Net_40\HandyControl_Net_40.csproj", "{32204503-2EF0-4681-AE13-AA1FEB6C658A}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HandyControlDemo_Net_40", "Net_40\HandyControlDemo_Net_40\HandyControlDemo_Net_40.csproj", "{D8AE88F8-C36B-4D10-A7F9-22FFCFBA5231}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HandyControlDemo_Net_40", "Net_40\HandyControlDemo_Net_40\HandyControlDemo_Net_40.csproj", "{D8AE88F8-C36B-4D10-A7F9-22FFCFBA5231}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HandyControlDemo_Code", "Shared\HandyControlDemo_Code\HandyControlDemo_Code.csproj", "{D8A4748C-0500-4F63-BC47-3506658C68F7}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HandyControlDemo_Code", "Shared\HandyControlDemo_Code\HandyControlDemo_Code.csproj", "{D8A4748C-0500-4F63-BC47-3506658C68F7}" EndProject Global GlobalSection(SharedMSBuildProjectFiles) = preSolution diff --git a/src/Net_40/HandyControlDemo_Net_40/HandyControlDemo_Net_40.csproj b/src/Net_40/HandyControlDemo_Net_40/HandyControlDemo_Net_40.csproj index 404f56c4..27ea16cb 100644 --- a/src/Net_40/HandyControlDemo_Net_40/HandyControlDemo_Net_40.csproj +++ b/src/Net_40/HandyControlDemo_Net_40/HandyControlDemo_Net_40.csproj @@ -279,6 +279,9 @@ Resources\Img\LeftMainContent\Label_16x.png + + Resources\Img\LeftMainContent\layout-FlexLayout-16.png + Resources\Img\LeftMainContent\LinearCarousel_16x.png diff --git a/src/Net_GE45/HandyControlDemo_Net_GE45/HandyControlDemo_Net_GE45.csproj b/src/Net_GE45/HandyControlDemo_Net_GE45/HandyControlDemo_Net_GE45.csproj index f0d40024..a07b3848 100644 --- a/src/Net_GE45/HandyControlDemo_Net_GE45/HandyControlDemo_Net_GE45.csproj +++ b/src/Net_GE45/HandyControlDemo_Net_GE45/HandyControlDemo_Net_GE45.csproj @@ -279,6 +279,9 @@ Resources\Img\LeftMainContent\Label_16x.png + + Resources\Img\LeftMainContent\layout-FlexLayout-16.png + Resources\Img\LeftMainContent\LinearCarousel_16x.png diff --git a/src/Shared/HandyControlDemo_Code/HandyControlDemo_Code.csproj b/src/Shared/HandyControlDemo_Code/HandyControlDemo_Code.csproj index 957fa6ab..ab2501be 100644 --- a/src/Shared/HandyControlDemo_Code/HandyControlDemo_Code.csproj +++ b/src/Shared/HandyControlDemo_Code/HandyControlDemo_Code.csproj @@ -496,6 +496,10 @@ UserControl\Controls\DrawerDemoCtl.xaml.cs DrawerDemoCtl.xaml + + UserControl\Controls\FlexPanelDemoCtl.xaml.cs + FlexPanelDemoCtl.xaml + UserControl\Controls\FlipClockDemoCtl.xaml.cs FlipClockDemoCtl.xaml diff --git a/src/Shared/HandyControlDemo_Shared/Data/DemoInfo.json b/src/Shared/HandyControlDemo_Shared/Data/DemoInfo.json index 46df4ea8..198470ff 100644 --- a/src/Shared/HandyControlDemo_Shared/Data/DemoInfo.json +++ b/src/Shared/HandyControlDemo_Shared/Data/DemoInfo.json @@ -78,6 +78,7 @@ [ "Divider", "DividerDemoCtl", "DottedSplitter_16x", "" ], [ "CirclePanel", "CirclePanelDemoCtl", "ColorWheel_16x", "" ], [ "Grid", "GridDemoCtl", "GridPane_16x", "" ], + [ "FlexPanel", "FlexPanelDemoCtl", "layout-FlexLayout-16", "1" ], [ "RelativePanel", "RelativePanelDemoCtl", "TransformRelative_16x", "" ], [ "WaterfallPanel", "WaterfallPanelDemoCtl", "Panel_16x", "" ], [ "HoneycombPanel", "HoneycombPanelDemoCtl", "PolygonHexagon_16x", "" ], diff --git a/src/Shared/HandyControlDemo_Shared/HandyControlDemo_Shared.projitems b/src/Shared/HandyControlDemo_Shared/HandyControlDemo_Shared.projitems index 59a21ff5..eec0f4b5 100644 --- a/src/Shared/HandyControlDemo_Shared/HandyControlDemo_Shared.projitems +++ b/src/Shared/HandyControlDemo_Shared/HandyControlDemo_Shared.projitems @@ -58,6 +58,9 @@ TextDialogWithTimer.xaml + + FlexPanelDemoCtl.xaml + ImageSelectorDemoCtl.xaml @@ -528,6 +531,10 @@ Designer MSBuild:Compile + + Designer + MSBuild:Compile + Designer MSBuild:Compile diff --git a/src/Shared/HandyControlDemo_Shared/Properties/Langs/Lang.Designer.cs b/src/Shared/HandyControlDemo_Shared/Properties/Langs/Lang.Designer.cs index 2762cd42..3312cb1e 100644 --- a/src/Shared/HandyControlDemo_Shared/Properties/Langs/Lang.Designer.cs +++ b/src/Shared/HandyControlDemo_Shared/Properties/Langs/Lang.Designer.cs @@ -8,10 +8,11 @@ // //------------------------------------------------------------------------------ -namespace HandyControlDemo.Properties.Langs { +namespace HandyControlDemo.Properties.Langs +{ using System; - - + + /// /// 一个强类型的资源类,用于查找本地化的字符串等。 /// @@ -22,247 +23,301 @@ namespace HandyControlDemo.Properties.Langs { [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - public class Lang { - + public class Lang + { + private static global::System.Resources.ResourceManager resourceMan; - + private static global::System.Globalization.CultureInfo resourceCulture; - + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Lang() { + internal Lang() + { } - + /// /// 返回此类使用的缓存的 ResourceManager 实例。 /// [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - public static global::System.Resources.ResourceManager ResourceManager { - get { - if (object.ReferenceEquals(resourceMan, null)) { + public static global::System.Resources.ResourceManager ResourceManager + { + get + { + if (object.ReferenceEquals(resourceMan, null)) + { global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("HandyControlDemo.Properties.Langs.Lang", typeof(Lang).Assembly); resourceMan = temp; } return resourceMan; } } - + /// /// 重写当前线程的 CurrentUICulture 属性 /// 重写当前线程的 CurrentUICulture 属性。 /// [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - public static global::System.Globalization.CultureInfo Culture { - get { + public static global::System.Globalization.CultureInfo Culture + { + get + { return resourceCulture; } - set { + set + { resourceCulture = value; } } - + /// /// 查找类似 关于 的本地化字符串。 /// - public static string About { - get { + public static string About + { + get + { return ResourceManager.GetString("About", resourceCulture); } } - + /// /// 查找类似 添加项 的本地化字符串。 /// - public static string AddItem { - get { + public static string AddItem + { + get + { return ResourceManager.GetString("AddItem", resourceCulture); } } - + /// /// 查找类似 动画路径 的本地化字符串。 /// - public static string AnimationPath { - get { + public static string AnimationPath + { + get + { return ResourceManager.GetString("AnimationPath", resourceCulture); } } - + /// /// 查找类似 托盘图标已打开,将隐藏窗口而不是关闭程序 的本地化字符串。 /// - public static string AppClosingTip { - get { + public static string AppClosingTip + { + get + { return ResourceManager.GetString("AppClosingTip", resourceCulture); } } - + /// /// 查找类似 询问 的本地化字符串。 /// - public static string Ask { - get { + public static string Ask + { + get + { return ResourceManager.GetString("Ask", resourceCulture); } } - + /// /// 查找类似 标记 的本地化字符串。 /// - public static string Badge { - get { + public static string Badge + { + get + { return ResourceManager.GetString("Badge", resourceCulture); } } - + /// /// 查找类似 填写基本信息 的本地化字符串。 /// - public static string BasicInfo { - get { + public static string BasicInfo + { + get + { return ResourceManager.GetString("BasicInfo", resourceCulture); } } - + /// /// 查找类似 基础布局 的本地化字符串。 /// - public static string BasicLayout { - get { + public static string BasicLayout + { + get + { return ResourceManager.GetString("BasicLayout", resourceCulture); } } - + /// /// 查找类似 闪烁 的本地化字符串。 /// - public static string Blink { - get { + public static string Blink + { + get + { return ResourceManager.GetString("Blink", resourceCulture); } } - + /// /// 查找类似 博客 的本地化字符串。 /// - public static string Blog { - get { + public static string Blog + { + get + { return ResourceManager.GetString("Blog", resourceCulture); } } - + /// /// 查找类似 边框 的本地化字符串。 /// - public static string Border { - get { + public static string Border + { + get + { return ResourceManager.GetString("Border", resourceCulture); } } - + /// /// 查找类似 画刷 的本地化字符串。 /// - public static string Brush { - get { + public static string Brush + { + get + { return ResourceManager.GetString("Brush", resourceCulture); } } - + /// /// 查找类似 按钮 的本地化字符串。 /// - public static string Button { - get { + public static string Button + { + get + { return ResourceManager.GetString("Button", resourceCulture); } } - + /// /// 查找类似 自定义按钮 的本地化字符串。 /// - public static string ButtonCustom { - get { + public static string ButtonCustom + { + get + { return ResourceManager.GetString("ButtonCustom", resourceCulture); } } - + /// /// 查找类似 按钮组 的本地化字符串。 /// - public static string ButtonGroup { - get { + public static string ButtonGroup + { + get + { return ResourceManager.GetString("ButtonGroup", resourceCulture); } } - + /// /// 查找类似 日历 的本地化字符串。 /// - public static string Calendar { - get { + public static string Calendar + { + get + { return ResourceManager.GetString("Calendar", resourceCulture); } } - + /// /// 查找类似 带时钟的日历 的本地化字符串。 /// - public static string CalendarWithClock { - get { + public static string CalendarWithClock + { + get + { return ResourceManager.GetString("CalendarWithClock", resourceCulture); } } - + /// /// 查找类似 卡片 的本地化字符串。 /// - public static string Card { - get { + public static string Card + { + get + { return ResourceManager.GetString("Card", resourceCulture); } } - + /// /// 查找类似 轮播 的本地化字符串。 /// - public static string Carousel { - get { + public static string Carousel + { + get + { return ResourceManager.GetString("Carousel", resourceCulture); } } - + /// /// 查找类似 是否重启以更改语言? 的本地化字符串。 /// - public static string ChangeLangAsk { - get { + public static string ChangeLangAsk + { + get + { return ResourceManager.GetString("ChangeLangAsk", resourceCulture); } } - + /// /// 查找类似 对话气泡 的本地化字符串。 /// - public static string ChatBubble { - get { + public static string ChatBubble + { + get + { return ResourceManager.GetString("ChatBubble", resourceCulture); } } - + /// /// 查找类似 讨论室 的本地化字符串。 /// - public static string Chatroom { - get { + public static string Chatroom + { + get + { return ResourceManager.GetString("Chatroom", resourceCulture); } } - + /// /// 查找类似 复选框 的本地化字符串。 /// - public static string CheckBox { - get { + public static string CheckBox + { + get + { return ResourceManager.GetString("CheckBox", resourceCulture); } } @@ -281,404 +336,505 @@ namespace HandyControlDemo.Properties.Langs { /// /// 查找类似 圆形布局 的本地化字符串。 /// - public static string CirclePanel { - get { + public static string CirclePanel + { + get + { return ResourceManager.GetString("CirclePanel", resourceCulture); } } - + /// /// 查找类似 清空 的本地化字符串。 /// - public static string Clear { - get { + public static string Clear + { + get + { return ResourceManager.GetString("Clear", resourceCulture); } } - + /// /// 查找类似 点击计数 的本地化字符串。 /// - public static string Click2Count { - get { + public static string Click2Count + { + get + { return ResourceManager.GetString("Click2Count", resourceCulture); } } - + /// /// 查找类似 时钟 的本地化字符串。 /// - public static string Clock { - get { + public static string Clock + { + get + { return ResourceManager.GetString("Clock", resourceCulture); } } - + /// /// 查找类似 颜色拾取器 的本地化字符串。 /// - public static string ColorPicker { - get { + public static string ColorPicker + { + get + { return ResourceManager.GetString("ColorPicker", resourceCulture); } } - + /// /// 查找类似 分栏偏移 的本地化字符串。 /// - public static string ColumnOffset { - get { + public static string ColumnOffset + { + get + { return ResourceManager.GetString("ColumnOffset", resourceCulture); } } - + /// /// 查找类似 分栏间隔 的本地化字符串。 /// - public static string ColumnSpacing { - get { + public static string ColumnSpacing + { + get + { return ResourceManager.GetString("ColumnSpacing", resourceCulture); } } - + /// /// 查找类似 组合框 的本地化字符串。 /// - public static string ComboBox { - get { + public static string ComboBox + { + get + { return ResourceManager.GetString("ComboBox", resourceCulture); } } - + /// /// 查找类似 敬请期待 的本地化字符串。 /// - public static string ComingSoon { - get { + public static string ComingSoon + { + get + { return ResourceManager.GetString("ComingSoon", resourceCulture); } } - + /// /// 查找类似 评论 的本地化字符串。 /// - public static string Comment { - get { + public static string Comment + { + get + { return ResourceManager.GetString("Comment", resourceCulture); } } - + /// /// 查找类似 一般 的本地化字符串。 /// - public static string Common { - get { + public static string Common + { + get + { return ResourceManager.GetString("Common", resourceCulture); } } - + /// /// 查找类似 对比滑块 的本地化字符串。 /// - public static string CompareSlider { - get { + public static string CompareSlider + { + get + { return ResourceManager.GetString("CompareSlider", resourceCulture); } } - + /// /// 查找类似 完成 的本地化字符串。 /// - public static string Complete { - get { + public static string Complete + { + get + { return ResourceManager.GetString("Complete", resourceCulture); } } - + /// /// 查找类似 这是内容 的本地化字符串。 /// - public static string ContentDemoStr { - get { + public static string ContentDemoStr + { + get + { return ResourceManager.GetString("ContentDemoStr", resourceCulture); } } - + /// /// 查找类似 贡献者 的本地化字符串。 /// - public static string Contributors { - get { + public static string Contributors + { + get + { return ResourceManager.GetString("Contributors", resourceCulture); } } - + /// /// 查找类似 控件 的本地化字符串。 /// - public static string Controls { - get { + public static string Controls + { + get + { return ResourceManager.GetString("Controls", resourceCulture); } } - + /// /// 查找类似 封面流 的本地化字符串。 /// - public static string CoverFlow { - get { + public static string CoverFlow + { + get + { return ResourceManager.GetString("CoverFlow", resourceCulture); } } - + /// /// 查找类似 封面视图 的本地化字符串。 /// - public static string CoverView { - get { + public static string CoverView + { + get + { return ResourceManager.GetString("CoverView", resourceCulture); } } - + /// /// 查找类似 危险 的本地化字符串。 /// - public static string Danger { - get { + public static string Danger + { + get + { return ResourceManager.GetString("Danger", resourceCulture); } } - + /// /// 查找类似 数据表格 的本地化字符串。 /// - public static string DataGrid { - get { + public static string DataGrid + { + get + { return ResourceManager.GetString("DataGrid", resourceCulture); } } - + /// /// 查找类似 日期选择器 的本地化字符串。 /// - public static string DatePicker { - get { + public static string DatePicker + { + get + { return ResourceManager.GetString("DatePicker", resourceCulture); } } - + /// /// 查找类似 日期时间选择器 的本地化字符串。 /// - public static string DateTimePicker { - get { + public static string DateTimePicker + { + get + { return ResourceManager.GetString("DateTimePicker", resourceCulture); } } - + /// /// 查找类似 默认 的本地化字符串。 /// - public static string Default { - get { + public static string Default + { + get + { return ResourceManager.GetString("Default", resourceCulture); } } - + /// /// 查找类似 示例 的本地化字符串。 /// - public static string Demo { - get { + public static string Demo + { + get + { return ResourceManager.GetString("Demo", resourceCulture); } } - + /// /// 查找类似 对话框 的本地化字符串。 /// - public static string Dialog { - get { + public static string Dialog + { + get + { return ResourceManager.GetString("Dialog", resourceCulture); } } - + /// /// 查找类似 对话框示例 的本地化字符串。 /// - public static string DialogDemo { - get { + public static string DialogDemo + { + get + { return ResourceManager.GetString("DialogDemo", resourceCulture); } } - + /// /// 查找类似 分割线 的本地化字符串。 /// - public static string Divider { - get { + public static string Divider + { + get + { return ResourceManager.GetString("Divider", resourceCulture); } } - + /// /// 查找类似 中文文档 的本地化字符串。 /// - public static string Doc_cn { - get { + public static string Doc_cn + { + get + { return ResourceManager.GetString("Doc_cn", resourceCulture); } } - + /// /// 查找类似 英文文档 的本地化字符串。 /// - public static string Doc_en { - get { + public static string Doc_en + { + get + { return ResourceManager.GetString("Doc_en", resourceCulture); } } - + /// /// 查找类似 文献资料 的本地化字符串。 /// - public static string Documentation { - get { + public static string Documentation + { + get + { return ResourceManager.GetString("Documentation", resourceCulture); } } - + /// /// 查找类似 在这里拖拽 的本地化字符串。 /// - public static string DragHere { - get { + public static string DragHere + { + get + { return ResourceManager.GetString("DragHere", resourceCulture); } } - + /// /// 查找类似 抽屉 的本地化字符串。 /// - public static string Drawer { - get { + public static string Drawer + { + get + { return ResourceManager.GetString("Drawer", resourceCulture); } } - + /// /// 查找类似 效果 的本地化字符串。 /// - public static string Effects { - get { + public static string Effects + { + get + { return ResourceManager.GetString("Effects", resourceCulture); } } - + /// /// 查找类似 邮箱 的本地化字符串。 /// - public static string Email { - get { + public static string Email + { + get + { return ResourceManager.GetString("Email", resourceCulture); } } - + /// /// 查找类似 错误 的本地化字符串。 /// - public static string Error { - get { + public static string Error + { + get + { return ResourceManager.GetString("Error", resourceCulture); } } - + /// /// 查找类似 退出 的本地化字符串。 /// - public static string Exit { - get { + public static string Exit + { + get + { return ResourceManager.GetString("Exit", resourceCulture); } } - + /// /// 查找类似 展开框 的本地化字符串。 /// - public static string Expander { - get { + public static string Expander + { + get + { return ResourceManager.GetString("Expander", resourceCulture); } } - + /// /// 查找类似 严重 的本地化字符串。 /// - public static string Fatal { - get { + public static string Fatal + { + get + { return ResourceManager.GetString("Fatal", resourceCulture); } } - + + /// + /// 查找类似 弹性盒子 的本地化字符串。 + /// + public static string FlexPanel + { + get + { + return ResourceManager.GetString("FlexPanel", resourceCulture); + } + } + /// /// 查找类似 翻页时钟 的本地化字符串。 /// - public static string FlipClock { - get { + public static string FlipClock + { + get + { return ResourceManager.GetString("FlipClock", resourceCulture); } } - + /// /// 查找类似 漂浮块 的本地化字符串。 /// - public static string FloatingBlock { - get { + public static string FloatingBlock + { + get + { return ResourceManager.GetString("FloatingBlock", resourceCulture); } } - + /// /// 查找类似 流文档 的本地化字符串。 /// - public static string FlowDocument { - get { + public static string FlowDocument + { + get + { return ResourceManager.GetString("FlowDocument", resourceCulture); } } - + /// /// 查找类似 流文档单页视图 的本地化字符串。 /// - public static string FlowDocumentPageViewer { - get { + public static string FlowDocumentPageViewer + { + get + { return ResourceManager.GetString("FlowDocumentPageViewer", resourceCulture); } } - + /// /// 查找类似 流文档查看器 的本地化字符串。 /// - public static string FlowDocumentReader { - get { + public static string FlowDocumentReader + { + get + { return ResourceManager.GetString("FlowDocumentReader", resourceCulture); } } - + /// /// 查找类似 流文档滚动视图 的本地化字符串。 /// - public static string FlowDocumentScrollViewer { - get { + public static string FlowDocumentScrollViewer + { + get + { return ResourceManager.GetString("FlowDocumentScrollViewer", resourceCulture); } } - + /// /// 查找类似 导航框架 的本地化字符串。 /// - public static string Frame { - get { + public static string Frame + { + get + { return ResourceManager.GetString("Frame", resourceCulture); } } @@ -694,179 +850,219 @@ namespace HandyControlDemo.Properties.Langs { /// /// 查找类似 Gif图片 的本地化字符串。 /// - public static string GifImage { - get { + public static string GifImage + { + get + { return ResourceManager.GetString("GifImage", resourceCulture); } } - + /// /// 查找类似 回到顶部 的本地化字符串。 /// - public static string GotoTop { - get { + public static string GotoTop + { + get + { return ResourceManager.GetString("GotoTop", resourceCulture); } } - + /// /// 查找类似 头像 的本地化字符串。 /// - public static string Gravatar { - get { + public static string Gravatar + { + get + { return ResourceManager.GetString("Gravatar", resourceCulture); } } - + /// /// 查找类似 栅格 的本地化字符串。 /// - public static string Grid { - get { + public static string Grid + { + get + { return ResourceManager.GetString("Grid", resourceCulture); } } - + /// /// 查找类似 分组框 的本地化字符串。 /// - public static string GroupBox { - get { + public static string GroupBox + { + get + { return ResourceManager.GetString("GroupBox", resourceCulture); } } - + /// /// 查找类似 组数 的本地化字符串。 /// - public static string Groups { - get { + public static string Groups + { + get + { return ResourceManager.GetString("Groups", resourceCulture); } } - + /// /// 查找类似 信息通知 的本地化字符串。 /// - public static string Growl { - get { + public static string Growl + { + get + { return ResourceManager.GetString("Growl", resourceCulture); } } - + /// /// 查找类似 检测到有新版本!是否更新? 的本地化字符串。 /// - public static string GrowlAsk { - get { + public static string GrowlAsk + { + get + { return ResourceManager.GetString("GrowlAsk", resourceCulture); } } - + /// /// 查找类似 消息通知示例 的本地化字符串。 /// - public static string GrowlDemo { - get { + public static string GrowlDemo + { + get + { return ResourceManager.GetString("GrowlDemo", resourceCulture); } } - + /// /// 查找类似 连接失败,请检查网络! 的本地化字符串。 /// - public static string GrowlError { - get { + public static string GrowlError + { + get + { return ResourceManager.GetString("GrowlError", resourceCulture); } } - + /// /// 查找类似 程序已崩溃~~~ 的本地化字符串。 /// - public static string GrowlFatal { - get { + public static string GrowlFatal + { + get + { return ResourceManager.GetString("GrowlFatal", resourceCulture); } } - + /// /// 查找类似 今天的天气不错~~~ 的本地化字符串。 /// - public static string GrowlInfo { - get { + public static string GrowlInfo + { + get + { return ResourceManager.GetString("GrowlInfo", resourceCulture); } } - + /// /// 查找类似 文件保存成功! 的本地化字符串。 /// - public static string GrowlSuccess { - get { + public static string GrowlSuccess + { + get + { return ResourceManager.GetString("GrowlSuccess", resourceCulture); } } - + /// /// 查找类似 磁盘空间快要满了! 的本地化字符串。 /// - public static string GrowlWarning { - get { + public static string GrowlWarning + { + get + { return ResourceManager.GetString("GrowlWarning", resourceCulture); } } - + /// /// 查找类似 阴影画笔生成器 的本地化字符串。 /// - public static string HatchBrushGenerator { - get { + public static string HatchBrushGenerator + { + get + { return ResourceManager.GetString("HatchBrushGenerator", resourceCulture); } } - + /// /// 查找类似 蜂窝布局 的本地化字符串。 /// - public static string HoneycombPanel { - get { + public static string HoneycombPanel + { + get + { return ResourceManager.GetString("HoneycombPanel", resourceCulture); } } - + /// /// 查找类似 混合布局 的本地化字符串。 /// - public static string HybridLayout { - get { + public static string HybridLayout + { + get + { return ResourceManager.GetString("HybridLayout", resourceCulture); } } - + /// /// 查找类似 忽略 的本地化字符串。 /// - public static string Ignore { - get { + public static string Ignore + { + get + { return ResourceManager.GetString("Ignore", resourceCulture); } } - + /// /// 查找类似 图片块 的本地化字符串。 /// - public static string ImageBlock { - get { + public static string ImageBlock + { + get + { return ResourceManager.GetString("ImageBlock", resourceCulture); } } - + /// /// 查找类似 图片浏览器 的本地化字符串。 /// - public static string ImageBrowser { - get { + public static string ImageBrowser + { + get + { return ResourceManager.GetString("ImageBrowser", resourceCulture); } } @@ -885,485 +1081,593 @@ namespace HandyControlDemo.Properties.Langs { /// /// 查找类似 索引 的本地化字符串。 /// - public static string Index { - get { + public static string Index + { + get + { return ResourceManager.GetString("Index", resourceCulture); } } - + /// /// 查找类似 信息 的本地化字符串。 /// - public static string Info { - get { + public static string Info + { + get + { return ResourceManager.GetString("Info", resourceCulture); } } - + /// /// 查找类似 可交互对话框 的本地化字符串。 /// - public static string InteractiveDialog { - get { + public static string InteractiveDialog + { + get + { return ResourceManager.GetString("InteractiveDialog", resourceCulture); } } - + /// /// 查找类似 不是手机号码 的本地化字符串。 /// - public static string IsNotPhone { - get { + public static string IsNotPhone + { + get + { return ResourceManager.GetString("IsNotPhone", resourceCulture); } } - + /// /// 查找类似 标签 的本地化字符串。 /// - public static string Label { - get { + public static string Label + { + get + { return ResourceManager.GetString("Label", resourceCulture); } } - + /// /// 查找类似 查找类似 {0} 的本地化字符串。 的本地化字符串。 /// - public static string LangComment { - get { + public static string LangComment + { + get + { return ResourceManager.GetString("LangComment", resourceCulture); } } - + /// /// 查找类似 列表框 的本地化字符串。 /// - public static string ListBox { - get { + public static string ListBox + { + get + { return ResourceManager.GetString("ListBox", resourceCulture); } } - + /// /// 查找类似 列表视图 的本地化字符串。 /// - public static string ListView { - get { + public static string ListView + { + get + { return ResourceManager.GetString("ListView", resourceCulture); } } - + /// /// 查找类似 加载条 的本地化字符串。 /// - public static string Loading { - get { + public static string Loading + { + get + { return ResourceManager.GetString("Loading", resourceCulture); } } - + /// /// 查找类似 放大镜 的本地化字符串。 /// - public static string Magnifier { - get { + public static string Magnifier + { + get + { return ResourceManager.GetString("Magnifier", resourceCulture); } } - + /// /// 查找类似 菜单 的本地化字符串。 /// - public static string Menu { - get { + public static string Menu + { + get + { return ResourceManager.GetString("Menu", resourceCulture); } } - + /// /// 查找类似 消息框 的本地化字符串。 /// - public static string MessageBox { - get { + public static string MessageBox + { + get + { return ResourceManager.GetString("MessageBox", resourceCulture); } } - + /// /// 查找类似 变形动画 的本地化字符串。 /// - public static string Morphing_Animation { - get { + public static string Morphing_Animation + { + get + { return ResourceManager.GetString("Morphing Animation", resourceCulture); } } - + /// /// 查找类似 名称 的本地化字符串。 /// - public static string Name { - get { + public static string Name + { + get + { return ResourceManager.GetString("Name", resourceCulture); } } - + /// /// 查找类似 新建窗口 的本地化字符串。 /// - public static string NewWindow { - get { + public static string NewWindow + { + get + { return ResourceManager.GetString("NewWindow", resourceCulture); } } - + /// /// 查找类似 下一步 的本地化字符串。 /// - public static string Next { - get { + public static string Next + { + get + { return ResourceManager.GetString("Next", resourceCulture); } } - + /// /// 查找类似 桌面通知 的本地化字符串。 /// - public static string Notification { - get { + public static string Notification + { + get + { return ResourceManager.GetString("Notification", resourceCulture); } } - + /// /// 查找类似 托盘图标 的本地化字符串。 /// - public static string NotifyIcon { - get { + public static string NotifyIcon + { + get + { return ResourceManager.GetString("NotifyIcon", resourceCulture); } } - + /// /// 查找类似 数值选择控件 的本地化字符串。 /// - public static string NumericUpDown { - get { + public static string NumericUpDown + { + get + { return ResourceManager.GetString("NumericUpDown", resourceCulture); } } - + /// /// 查找类似 关 的本地化字符串。 /// - public static string Off { - get { + public static string Off + { + get + { return ResourceManager.GetString("Off", resourceCulture); } } - + /// /// 查找类似 确定 的本地化字符串。 /// - public static string Ok { - get { + public static string Ok + { + get + { return ResourceManager.GetString("Ok", resourceCulture); } } - + /// /// 查找类似 开 的本地化字符串。 /// - public static string On { - get { + public static string On + { + get + { return ResourceManager.GetString("On", resourceCulture); } } - + /// /// 查找类似 点击打开背景模糊窗口 的本地化字符串。 /// - public static string OpenBlurWindow { - get { + public static string OpenBlurWindow + { + get + { return ResourceManager.GetString("OpenBlurWindow", resourceCulture); } } - + /// /// 查找类似 点击打开常规窗口 的本地化字符串。 /// - public static string OpenCommonWindow { - get { + public static string OpenCommonWindow + { + get + { return ResourceManager.GetString("OpenCommonWindow", resourceCulture); } } - + /// /// 查找类似 点击打开自定义内容窗口 的本地化字符串。 /// - public static string OpenCustomContentWindow { - get { + public static string OpenCustomContentWindow + { + get + { return ResourceManager.GetString("OpenCustomContentWindow", resourceCulture); } } - + /// /// 查找类似 点击打开自定义消息窗口 的本地化字符串。 /// - public static string OpenCustomMessageWindow { - get { + public static string OpenCustomMessageWindow + { + get + { return ResourceManager.GetString("OpenCustomMessageWindow", resourceCulture); } } - + /// /// 查找类似 点击打开自定义非客户端区域窗口 的本地化字符串。 /// - public static string OpenCustomNonClientAreaWindow { - get { + public static string OpenCustomNonClientAreaWindow + { + get + { return ResourceManager.GetString("OpenCustomNonClientAreaWindow", resourceCulture); } } - + /// /// 查找类似 点击打开辉光窗口 的本地化字符串。 /// - public static string OpenGlowWindow { - get { + public static string OpenGlowWindow + { + get + { return ResourceManager.GetString("OpenGlowWindow", resourceCulture); } } - + /// /// 查找类似 点击打开图片浏览器 的本地化字符串。 /// - public static string OpenImageBrowser { - get { + public static string OpenImageBrowser + { + get + { return ResourceManager.GetString("OpenImageBrowser", resourceCulture); } } - + /// /// 查找类似 点击打开消息窗口 的本地化字符串。 /// - public static string OpenMessageWindow { - get { + public static string OpenMessageWindow + { + get + { return ResourceManager.GetString("OpenMessageWindow", resourceCulture); } } - + /// /// 查找类似 点击打开鼠标跟随窗口 的本地化字符串。 /// - public static string OpenMouseFollowWindow { - get { + public static string OpenMouseFollowWindow + { + get + { return ResourceManager.GetString("OpenMouseFollowWindow", resourceCulture); } } - + /// /// 查找类似 点击打开原生常规窗口 的本地化字符串。 /// - public static string OpenNativeCommonWindow { - get { + public static string OpenNativeCommonWindow + { + get + { return ResourceManager.GetString("OpenNativeCommonWindow", resourceCulture); } } - + /// /// 查找类似 点击打开导航窗口 的本地化字符串。 /// - public static string OpenNavigationWindow { - get { + public static string OpenNavigationWindow + { + get + { return ResourceManager.GetString("OpenNavigationWindow", resourceCulture); } } - + /// /// 查找类似 打开无非客户端区域可拖拽窗口 的本地化字符串。 /// - public static string OpenNoNonClientAreaDragableWindow { - get { + public static string OpenNoNonClientAreaDragableWindow + { + get + { return ResourceManager.GetString("OpenNoNonClientAreaDragableWindow", resourceCulture); } } - + /// /// 查找类似 打开面板 的本地化字符串。 /// - public static string OpenPanel { - get { + public static string OpenPanel + { + get + { return ResourceManager.GetString("OpenPanel", resourceCulture); } } - + /// /// 查找类似 打开精灵 的本地化字符串。 /// - public static string OpenSprite { - get { + public static string OpenSprite + { + get + { return ResourceManager.GetString("OpenSprite", resourceCulture); } } - + /// /// 查找类似 轮廓文本 的本地化字符串。 /// - public static string OutlineText { - get { + public static string OutlineText + { + get + { return ResourceManager.GetString("OutlineText", resourceCulture); } } - + /// /// 查找类似 页码条 的本地化字符串。 /// - public static string Pagination { - get { + public static string Pagination + { + get + { return ResourceManager.GetString("Pagination", resourceCulture); } } - + /// /// 查找类似 密码框 的本地化字符串。 /// - public static string PasswordBox { - get { + public static string PasswordBox + { + get + { return ResourceManager.GetString("PasswordBox", resourceCulture); } } - + /// /// 查找类似 PIN码框 的本地化字符串。 /// - public static string PinBox { - get { + public static string PinBox + { + get + { return ResourceManager.GetString("PinBox", resourceCulture); } } - + /// /// 查找类似 请输入... 的本地化字符串。 /// - public static string PleaseInput { - get { + public static string PleaseInput + { + get + { return ResourceManager.GetString("PleaseInput", resourceCulture); } } - + /// /// 查找类似 请稍后... 的本地化字符串。 /// - public static string PleaseWait { - get { + public static string PleaseWait + { + get + { return ResourceManager.GetString("PleaseWait", resourceCulture); } } - + /// /// 查找类似 请输入内容 的本地化字符串。 /// - public static string PlsEnterContent { - get { + public static string PlsEnterContent + { + get + { return ResourceManager.GetString("PlsEnterContent", resourceCulture); } } - + /// /// 查找类似 请输入邮箱 的本地化字符串。 /// - public static string PlsEnterEmail { - get { + public static string PlsEnterEmail + { + get + { return ResourceManager.GetString("PlsEnterEmail", resourceCulture); } } - + /// /// 查找类似 请输入关键字 的本地化字符串。 /// - public static string PlsEnterKey { - get { + public static string PlsEnterKey + { + get + { return ResourceManager.GetString("PlsEnterKey", resourceCulture); } } - + /// /// 查找类似 气泡提示 的本地化字符串。 /// - public static string Poptip { - get { + public static string Poptip + { + get + { return ResourceManager.GetString("Poptip", resourceCulture); } } - + /// /// 查找类似 上左;上边;上右;右上;右边;右下;下右;下边;下左;左下;左边;左上 的本地化字符串。 /// - public static string PoptipPositionStr { - get { + public static string PoptipPositionStr + { + get + { return ResourceManager.GetString("PoptipPositionStr", resourceCulture); } } - + /// /// 查找类似 实用例子 的本地化字符串。 /// - public static string PracticalDemos { - get { + public static string PracticalDemos + { + get + { return ResourceManager.GetString("PracticalDemos", resourceCulture); } } - + /// /// 查找类似 上一步 的本地化字符串。 /// - public static string Prev { - get { + public static string Prev + { + get + { return ResourceManager.GetString("Prev", resourceCulture); } } - + /// /// 查找类似 预览滑块 的本地化字符串。 /// - public static string PreviewSlider { - get { + public static string PreviewSlider + { + get + { return ResourceManager.GetString("PreviewSlider", resourceCulture); } } - + /// /// 查找类似 主要 的本地化字符串。 /// - public static string Primary { - get { + public static string Primary + { + get + { return ResourceManager.GetString("Primary", resourceCulture); } } - + /// /// 查找类似 进度条 的本地化字符串。 /// - public static string ProgressBar { - get { + public static string ProgressBar + { + get + { return ResourceManager.GetString("ProgressBar", resourceCulture); } } - + /// /// 查找类似 进度按钮 的本地化字符串。 /// - public static string ProgressButton { - get { + public static string ProgressButton + { + get + { return ResourceManager.GetString("ProgressButton", resourceCulture); } } - + /// /// 查找类似 项目 的本地化字符串。 /// - public static string Project { - get { + public static string Project + { + get + { return ResourceManager.GetString("Project", resourceCulture); } } @@ -1382,620 +1686,758 @@ namespace HandyControlDemo.Properties.Langs { /// /// 查找类似 按住说话 的本地化字符串。 /// - public static string PushToTalk { - get { + public static string PushToTalk + { + get + { return ResourceManager.GetString("PushToTalk", resourceCulture); } } - + /// /// 查找类似 QQ群 的本地化字符串。 /// - public static string QQGroup { - get { + public static string QQGroup + { + get + { return ResourceManager.GetString("QQGroup", resourceCulture); } } - + /// /// 查找类似 单选按钮 的本地化字符串。 /// - public static string RadioButton { - get { + public static string RadioButton + { + get + { return ResourceManager.GetString("RadioButton", resourceCulture); } } - + /// /// 查找类似 范围滑块 的本地化字符串。 /// - public static string RangeSlider { - get { + public static string RangeSlider + { + get + { return ResourceManager.GetString("RangeSlider", resourceCulture); } } - + /// /// 查找类似 评分 的本地化字符串。 /// - public static string Rate { - get { + public static string Rate + { + get + { return ResourceManager.GetString("Rate", resourceCulture); } } - + /// /// 查找类似 群友推荐 的本地化字符串。 /// - public static string Recommendation { - get { + public static string Recommendation + { + get + { return ResourceManager.GetString("Recommendation", resourceCulture); } } - + /// /// 查找类似 注册 的本地化字符串。 /// - public static string Register { - get { + public static string Register + { + get + { return ResourceManager.GetString("Register", resourceCulture); } } - + /// /// 查找类似 相对布局 的本地化字符串。 /// - public static string RelativePanel { - get { + public static string RelativePanel + { + get + { return ResourceManager.GetString("RelativePanel", resourceCulture); } } - + /// /// 查找类似 备注 的本地化字符串。 /// - public static string Remark { - get { + public static string Remark + { + get + { return ResourceManager.GetString("Remark", resourceCulture); } } - + /// /// 查找类似 删除项 的本地化字符串。 /// - public static string RemoveItem { - get { + public static string RemoveItem + { + get + { return ResourceManager.GetString("RemoveItem", resourceCulture); } } - + /// /// 查找类似 重复按钮 的本地化字符串。 /// - public static string RepeatButton { - get { + public static string RepeatButton + { + get + { return ResourceManager.GetString("RepeatButton", resourceCulture); } } - + /// /// 查找类似 回复 的本地化字符串。 /// - public static string Reply { - get { + public static string Reply + { + get + { return ResourceManager.GetString("Reply", resourceCulture); } } - + /// /// 查找类似 代码仓库 的本地化字符串。 /// - public static string Repository { - get { + public static string Repository + { + get + { return ResourceManager.GetString("Repository", resourceCulture); } } - + /// /// 查找类似 响应式布局 的本地化字符串。 /// - public static string ResponsiveLayout { - get { + public static string ResponsiveLayout + { + get + { return ResourceManager.GetString("ResponsiveLayout", resourceCulture); } } - + /// /// 查找类似 富文本框 的本地化字符串。 /// - public static string RichTextBox { - get { + public static string RichTextBox + { + get + { return ResourceManager.GetString("RichTextBox", resourceCulture); } } - + /// /// 查找类似 在这里右击 的本地化字符串。 /// - public static string RightClickHere { - get { + public static string RightClickHere + { + get + { return ResourceManager.GetString("RightClickHere", resourceCulture); } } - + /// /// 查找类似 滚动块 的本地化字符串。 /// - public static string RunningBlock { - get { + public static string RunningBlock + { + get + { return ResourceManager.GetString("RunningBlock", resourceCulture); } } - + /// /// 查找类似 截图 的本地化字符串。 /// - public static string Screenshot { - get { + public static string Screenshot + { + get + { return ResourceManager.GetString("Screenshot", resourceCulture); } } - + /// /// 查找类似 滚动视图 的本地化字符串。 /// - public static string ScrollViewer { - get { + public static string ScrollViewer + { + get + { return ResourceManager.GetString("ScrollViewer", resourceCulture); } } - + /// /// 查找类似 搜索栏 的本地化字符串。 /// - public static string SearchBar { - get { + public static string SearchBar + { + get + { return ResourceManager.GetString("SearchBar", resourceCulture); } } - + /// /// 查找类似 秒 的本地化字符串。 /// - public static string Second { - get { + public static string Second + { + get + { return ResourceManager.GetString("Second", resourceCulture); } } - + /// /// 查找类似 选中 的本地化字符串。 /// - public static string Selected { - get { + public static string Selected + { + get + { return ResourceManager.GetString("Selected", resourceCulture); } } - + /// /// 查找类似 发送通知 的本地化字符串。 /// - public static string SendNotification { - get { + public static string SendNotification + { + get + { return ResourceManager.GetString("SendNotification", resourceCulture); } } - + /// /// 查找类似 徽章 的本地化字符串。 /// - public static string Shield { - get { + public static string Shield + { + get + { return ResourceManager.GetString("Shield", resourceCulture); } } - + /// /// 查找类似 在当前窗口显示 的本地化字符串。 /// - public static string ShowInCurrentWindow { - get { + public static string ShowInCurrentWindow + { + get + { return ResourceManager.GetString("ShowInCurrentWindow", resourceCulture); } } - + /// /// 查找类似 在主窗口显示 的本地化字符串。 /// - public static string ShowInMainWindow { - get { + public static string ShowInMainWindow + { + get + { return ResourceManager.GetString("ShowInMainWindow", resourceCulture); } } - + /// /// 查找类似 显示行号 的本地化字符串。 /// - public static string ShowRowNumber { - get { + public static string ShowRowNumber + { + get + { return ResourceManager.GetString("ShowRowNumber", resourceCulture); } } - + /// /// 查找类似 侧边菜单 的本地化字符串。 /// - public static string SideMenu { - get { + public static string SideMenu + { + get + { return ResourceManager.GetString("SideMenu", resourceCulture); } } - + /// /// 查找类似 滑块 的本地化字符串。 /// - public static string Slider { - get { + public static string Slider + { + get + { return ResourceManager.GetString("Slider", resourceCulture); } } - + /// /// 查找类似 分割按钮 的本地化字符串。 /// - public static string SplitButton { - get { + public static string SplitButton + { + get + { return ResourceManager.GetString("SplitButton", resourceCulture); } } - + /// /// 查找类似 精灵 的本地化字符串。 /// - public static string Sprite { - get { + public static string Sprite + { + get + { return ResourceManager.GetString("Sprite", resourceCulture); } } - + /// /// 查找类似 开始截图 的本地化字符串。 /// - public static string StartScreenshot { - get { + public static string StartScreenshot + { + get + { return ResourceManager.GetString("StartScreenshot", resourceCulture); } } - + /// /// 查找类似 保持打开 的本地化字符串。 /// - public static string StaysOpen { - get { + public static string StaysOpen + { + get + { return ResourceManager.GetString("StaysOpen", resourceCulture); } } - + /// /// 查找类似 步骤 的本地化字符串。 /// - public static string Step { - get { + public static string Step + { + get + { return ResourceManager.GetString("Step", resourceCulture); } } - + /// /// 查找类似 步骤条 的本地化字符串。 /// - public static string StepBar { - get { + public static string StepBar + { + get + { return ResourceManager.GetString("StepBar", resourceCulture); } } - + /// /// 查找类似 样式模板 的本地化字符串。 /// - public static string Styles { - get { + public static string Styles + { + get + { return ResourceManager.GetString("Styles", resourceCulture); } } - + /// /// 查找类似 子标题 的本地化字符串。 /// - public static string SubTitle { - get { + public static string SubTitle + { + get + { return ResourceManager.GetString("SubTitle", resourceCulture); } } - + /// /// 查找类似 成功 的本地化字符串。 /// - public static string Success { - get { + public static string Success + { + get + { return ResourceManager.GetString("Success", resourceCulture); } } - + /// /// 查找类似 选项卡控件 的本地化字符串。 /// - public static string TabControl { - get { + public static string TabControl + { + get + { return ResourceManager.GetString("TabControl", resourceCulture); } } - + /// /// 查找类似 标签 的本地化字符串。 /// - public static string Tag { - get { + public static string Tag + { + get + { return ResourceManager.GetString("Tag", resourceCulture); } } - + /// /// 查找类似 正文 的本地化字符串。 /// - public static string Text { - get { + public static string Text + { + get + { return ResourceManager.GetString("Text", resourceCulture); } } - + /// /// 查找类似 文本块 的本地化字符串。 /// - public static string TextBlock { - get { + public static string TextBlock + { + get + { return ResourceManager.GetString("TextBlock", resourceCulture); } } - + /// /// 查找类似 文本框 的本地化字符串。 /// - public static string TextBox { - get { + public static string TextBox + { + get + { return ResourceManager.GetString("TextBox", resourceCulture); } } - + /// /// 查找类似 文本对话框 的本地化字符串。 /// - public static string TextDialog { - get { + public static string TextDialog + { + get + { return ResourceManager.GetString("TextDialog", resourceCulture); } } - + /// /// 查找类似 文本对话框(控件中) 的本地化字符串。 /// - public static string TextDialogInControl { - get { + public static string TextDialogInControl + { + get + { return ResourceManager.GetString("TextDialogInControl", resourceCulture); } } - + /// /// 查找类似 文本对话框,带计时器 的本地化字符串。 /// - public static string TextDialogWithTimer { - get { + public static string TextDialogWithTimer + { + get + { return ResourceManager.GetString("TextDialogWithTimer", resourceCulture); } } - + /// /// 查找类似 时间条 的本地化字符串。 /// - public static string TimeBar { - get { + public static string TimeBar + { + get + { return ResourceManager.GetString("TimeBar", resourceCulture); } } - + /// /// 查找类似 时间选择器 的本地化字符串。 /// - public static string TimePicker { - get { + public static string TimePicker + { + get + { return ResourceManager.GetString("TimePicker", resourceCulture); } } - + /// /// 查找类似 提示 的本地化字符串。 /// - public static string Tip { - get { + public static string Tip + { + get + { return ResourceManager.GetString("Tip", resourceCulture); } } - + /// /// 查找类似 标题 的本地化字符串。 /// - public static string Title { - get { + public static string Title + { + get + { return ResourceManager.GetString("Title", resourceCulture); } } - + /// /// 查找类似 这是标题 的本地化字符串。 /// - public static string TitleDemoStr1 { - get { + public static string TitleDemoStr1 + { + get + { return ResourceManager.GetString("TitleDemoStr1", resourceCulture); } } - + /// /// 查找类似 此项必填 的本地化字符串。 /// - public static string TitleDemoStr2 { - get { + public static string TitleDemoStr2 + { + get + { return ResourceManager.GetString("TitleDemoStr2", resourceCulture); } } - + /// /// 查找类似 标题在左侧 的本地化字符串。 /// - public static string TitleDemoStr3 { - get { + public static string TitleDemoStr3 + { + get + { return ResourceManager.GetString("TitleDemoStr3", resourceCulture); } } - + /// /// 查找类似 切换按钮 的本地化字符串。 /// - public static string ToggleButton { - get { + public static string ToggleButton + { + get + { return ResourceManager.GetString("ToggleButton", resourceCulture); } } - + /// /// 查找类似 工具条 的本地化字符串。 /// - public static string ToolBar { - get { + public static string ToolBar + { + get + { return ResourceManager.GetString("ToolBar", resourceCulture); } } - + /// /// 查找类似 工具 的本地化字符串。 /// - public static string Tools { - get { + public static string Tools + { + get + { return ResourceManager.GetString("Tools", resourceCulture); } } - + /// /// 查找类似 穿梭框 的本地化字符串。 /// - public static string Transfer { - get { + public static string Transfer + { + get + { return ResourceManager.GetString("Transfer", resourceCulture); } } - + /// /// 查找类似 内容过渡控件 的本地化字符串。 /// - public static string TransitioningContentControl { - get { + public static string TransitioningContentControl + { + get + { return ResourceManager.GetString("TransitioningContentControl", resourceCulture); } } - + /// /// 查找类似 树视图 的本地化字符串。 /// - public static string TreeView { - get { + public static string TreeView + { + get + { return ResourceManager.GetString("TreeView", resourceCulture); } } - + /// /// 查找类似 试试关闭程序吧? 的本地化字符串。 /// - public static string Try2CloseApp { - get { + public static string Try2CloseApp + { + get + { return ResourceManager.GetString("Try2CloseApp", resourceCulture); } } - + /// /// 查找类似 类型 的本地化字符串。 /// - public static string Type { - get { + public static string Type + { + get + { return ResourceManager.GetString("Type", resourceCulture); } } - + /// /// 查找类似 上传文件 的本地化字符串。 /// - public static string UploadFile { - get { + public static string UploadFile + { + get + { return ResourceManager.GetString("UploadFile", resourceCulture); } } - + /// /// 查找类似 上传;上传中 的本地化字符串。 /// - public static string UploadStr { - get { + public static string UploadStr + { + get + { return ResourceManager.GetString("UploadStr", resourceCulture); } } - + /// /// 查找类似 可见性 的本地化字符串。 /// - public static string Visibility { - get { + public static string Visibility + { + get + { return ResourceManager.GetString("Visibility", resourceCulture); } } - + /// /// 查找类似 VS 插件 的本地化字符串。 /// - public static string Vsix { - get { + public static string Vsix + { + get + { return ResourceManager.GetString("Vsix", resourceCulture); } } - + /// /// 查找类似 警告 的本地化字符串。 /// - public static string Warning { - get { + public static string Warning + { + get + { return ResourceManager.GetString("Warning", resourceCulture); } } - + /// /// 查找类似 瀑布流 的本地化字符串。 /// - public static string WaterfallPanel { - get { + public static string WaterfallPanel + { + get + { return ResourceManager.GetString("WaterfallPanel", resourceCulture); } } - + /// /// 查找类似 网站 的本地化字符串。 /// - public static string Website { - get { + public static string Website + { + get + { return ResourceManager.GetString("Website", resourceCulture); } } - + /// /// 查找类似 窗口 的本地化字符串。 /// - public static string Window { - get { + public static string Window + { + get + { return ResourceManager.GetString("Window", resourceCulture); } } diff --git a/src/Shared/HandyControlDemo_Shared/Properties/Langs/Lang.en.resx b/src/Shared/HandyControlDemo_Shared/Properties/Langs/Lang.en.resx index 13e032a4..4747203a 100644 --- a/src/Shared/HandyControlDemo_Shared/Properties/Langs/Lang.en.resx +++ b/src/Shared/HandyControlDemo_Shared/Properties/Langs/Lang.en.resx @@ -762,4 +762,7 @@ CheckComboBox + + FlexPanel + \ No newline at end of file diff --git a/src/Shared/HandyControlDemo_Shared/Properties/Langs/Lang.fa.resx b/src/Shared/HandyControlDemo_Shared/Properties/Langs/Lang.fa.resx index 1ed78d51..efea38f5 100644 --- a/src/Shared/HandyControlDemo_Shared/Properties/Langs/Lang.fa.resx +++ b/src/Shared/HandyControlDemo_Shared/Properties/Langs/Lang.fa.resx @@ -762,4 +762,7 @@ CheckComboBox + + FlexPanel + \ No newline at end of file diff --git a/src/Shared/HandyControlDemo_Shared/Properties/Langs/Lang.fr.resx b/src/Shared/HandyControlDemo_Shared/Properties/Langs/Lang.fr.resx index ea8e5781..482c5abf 100644 --- a/src/Shared/HandyControlDemo_Shared/Properties/Langs/Lang.fr.resx +++ b/src/Shared/HandyControlDemo_Shared/Properties/Langs/Lang.fr.resx @@ -130,10 +130,10 @@ C'est une belle journée aujourd'hui - Fichier enregistré + Fichier enregistré! - Espace disque bientôt epuisé + Espace disque bientôt epuisé! Erreur de connexion. Veuillez vérifier votre réseau ! @@ -762,4 +762,7 @@ CheckComboBox + + FlexPanel + \ No newline at end of file diff --git a/src/Shared/HandyControlDemo_Shared/Properties/Langs/Lang.ko-KR.resx b/src/Shared/HandyControlDemo_Shared/Properties/Langs/Lang.ko-KR.resx index 460d7c8e..6191028d 100644 --- a/src/Shared/HandyControlDemo_Shared/Properties/Langs/Lang.ko-KR.resx +++ b/src/Shared/HandyControlDemo_Shared/Properties/Langs/Lang.ko-KR.resx @@ -762,4 +762,7 @@ CheckComboBox + + FlexPanel + \ No newline at end of file diff --git a/src/Shared/HandyControlDemo_Shared/Properties/Langs/Lang.pt-BR.resx b/src/Shared/HandyControlDemo_Shared/Properties/Langs/Lang.pt-BR.resx index b4c05ff9..80a0b183 100644 --- a/src/Shared/HandyControlDemo_Shared/Properties/Langs/Lang.pt-BR.resx +++ b/src/Shared/HandyControlDemo_Shared/Properties/Langs/Lang.pt-BR.resx @@ -762,4 +762,7 @@ CheckComboBox + + FlexPanel + \ No newline at end of file diff --git a/src/Shared/HandyControlDemo_Shared/Properties/Langs/Lang.resx b/src/Shared/HandyControlDemo_Shared/Properties/Langs/Lang.resx index 2eca1695..2dbc5869 100644 --- a/src/Shared/HandyControlDemo_Shared/Properties/Langs/Lang.resx +++ b/src/Shared/HandyControlDemo_Shared/Properties/Langs/Lang.resx @@ -762,4 +762,7 @@ 多选组合框 + + 弹性盒子 + \ No newline at end of file diff --git a/src/Shared/HandyControlDemo_Shared/Properties/Langs/Lang.ru.resx b/src/Shared/HandyControlDemo_Shared/Properties/Langs/Lang.ru.resx index 13e032a4..4747203a 100644 --- a/src/Shared/HandyControlDemo_Shared/Properties/Langs/Lang.ru.resx +++ b/src/Shared/HandyControlDemo_Shared/Properties/Langs/Lang.ru.resx @@ -762,4 +762,7 @@ CheckComboBox + + FlexPanel + \ No newline at end of file diff --git a/src/Shared/HandyControlDemo_Shared/Properties/Langs/Lang.tr.resx b/src/Shared/HandyControlDemo_Shared/Properties/Langs/Lang.tr.resx index deef133a..69d3a759 100644 --- a/src/Shared/HandyControlDemo_Shared/Properties/Langs/Lang.tr.resx +++ b/src/Shared/HandyControlDemo_Shared/Properties/Langs/Lang.tr.resx @@ -762,4 +762,7 @@ CheckComboBox + + FlexPanel + \ No newline at end of file diff --git a/src/Shared/HandyControlDemo_Shared/Properties/Langs/LangProvider.cs b/src/Shared/HandyControlDemo_Shared/Properties/Langs/LangProvider.cs index e8118f39..9aade061 100644 --- a/src/Shared/HandyControlDemo_Shared/Properties/Langs/LangProvider.cs +++ b/src/Shared/HandyControlDemo_Shared/Properties/Langs/LangProvider.cs @@ -99,7 +99,8 @@ namespace HandyControlDemo.Properties.Langs OnPropertyChanged(nameof(Exit)); OnPropertyChanged(nameof(Expander)); OnPropertyChanged(nameof(Fatal)); - OnPropertyChanged(nameof(FlipClock)); + OnPropertyChanged(nameof(FlexPanel)); + OnPropertyChanged(nameof(FlipClock)); OnPropertyChanged(nameof(FloatingBlock)); OnPropertyChanged(nameof(FlowDocument)); OnPropertyChanged(nameof(FlowDocumentPageViewer)); @@ -564,6 +565,11 @@ namespace HandyControlDemo.Properties.Langs /// public string Fatal => Lang.Fatal; + /// + /// 查找类似 弹性盒子 的本地化字符串。 + /// + public string FlexPanel => Lang.FlexPanel; + /// /// 查找类似 翻页时钟 的本地化字符串。 /// @@ -1648,6 +1654,11 @@ namespace HandyControlDemo.Properties.Langs /// public static string Fatal = nameof(Fatal); + /// + /// 查找类似 弹性盒子 的本地化字符串。 + /// + public static string FlexPanel = nameof(FlexPanel); + /// /// 查找类似 翻页时钟 的本地化字符串。 /// diff --git a/src/Shared/HandyControlDemo_Shared/Resources/Img/LeftMainContent/layout-FlexLayout-16.png b/src/Shared/HandyControlDemo_Shared/Resources/Img/LeftMainContent/layout-FlexLayout-16.png new file mode 100644 index 0000000000000000000000000000000000000000..3b24bd18abfac1ab65215644c5a3680923b302e1 GIT binary patch literal 121 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf696VhdLn;`P6_{LfIR5uDpJUes zQm*15Y<{jS4GJx7A5R1^u+HFG(BPqcqDVy~VTQwviBsB{3ms+K^fz%ZGpy&x`)!|n Rb{Wtt22WQ%mvv4FO#m%qBQ^j4 literal 0 HcmV?d00001 diff --git a/src/Shared/HandyControlDemo_Shared/UserControl/Controls/FlexPanelDemoCtl.xaml b/src/Shared/HandyControlDemo_Shared/UserControl/Controls/FlexPanelDemoCtl.xaml new file mode 100644 index 00000000..c55f1b4c --- /dev/null +++ b/src/Shared/HandyControlDemo_Shared/UserControl/Controls/FlexPanelDemoCtl.xaml @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/Shared/HandyControlDemo_Shared/UserControl/Controls/FlexPanelDemoCtl.xaml.cs b/src/Shared/HandyControlDemo_Shared/UserControl/Controls/FlexPanelDemoCtl.xaml.cs new file mode 100644 index 00000000..d9089da2 --- /dev/null +++ b/src/Shared/HandyControlDemo_Shared/UserControl/Controls/FlexPanelDemoCtl.xaml.cs @@ -0,0 +1,10 @@ +namespace HandyControlDemo.UserControl +{ + public partial class FlexPanelDemoCtl : IFull + { + public FlexPanelDemoCtl() + { + InitializeComponent(); + } + } +} From cf9b17f19dd652e806ea0d7c35918238ddf86871 Mon Sep 17 00:00:00 2001 From: xsnakes Date: Mon, 7 Sep 2020 16:29:46 +0300 Subject: [PATCH 10/24] Update TransitioningContentControl.cs Fix. Null Exception. When using "ContextMenu" with "TransitioningContentControl" and when "MenuItem" call "Application Shutdown", then the application throws a null exception, because "Application.Current" is null and fadeout animation call "ResourceHelper.GetResource". --- .../Controls/Other/TransitioningContentControl.cs | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/Shared/HandyControl_Shared/Controls/Other/TransitioningContentControl.cs b/src/Shared/HandyControl_Shared/Controls/Other/TransitioningContentControl.cs index 07f7dea9..2199bf41 100644 --- a/src/Shared/HandyControl_Shared/Controls/Other/TransitioningContentControl.cs +++ b/src/Shared/HandyControl_Shared/Controls/Other/TransitioningContentControl.cs @@ -49,7 +49,14 @@ namespace HandyControl.Controls { if (Visibility != Visibility.Visible || _contentPresenter == null) return; - (TransitionStoryboard ?? ResourceHelper.GetResource($"{TransitionMode.ToString()}Transition"))?.Begin(_contentPresenter); + if (TransitionStoryboard != null) + { + TransitionStoryboard.Begin(_contentPresenter); + } + else if (Application.Current != null) + { + ResourceHelper.GetResource($"{TransitionMode.ToString()}Transition")?.Begin(_contentPresenter); + } } public override void OnApplyTemplate() @@ -73,4 +80,4 @@ namespace HandyControl.Controls } } } -} \ No newline at end of file +} From 52bc7514a6bf4c85f27364ee5ce5689f3e7cc5d6 Mon Sep 17 00:00:00 2001 From: NaBian <836904362@qq.com> Date: Mon, 7 Sep 2020 23:29:37 +0800 Subject: [PATCH 11/24] add some toolbox icons --- build/build.cake | 2 +- build/build.nuspec | 14 +++++- .../HandyControlDemo_Net_40.csproj | 1 + .../HandyControl_Net_40.csproj | 3 +- .../HandyControlDemo_Net_GE45.csproj | 1 + .../HandyControl_Net_GE45.csproj | 1 + .../HandyControl_Shared.projitems | 40 ++++++++++++++++++ ...ndyControl.Controls.AnimationPath.icon.bmp | Bin 0 -> 822 bytes .../Icons/HandyControl.Controls.Arc.icon.bmp | Bin 0 -> 824 bytes .../HandyControl.Controls.Badge.icon.bmp | Bin 0 -> 822 bytes ...dyControl.Controls.BlendEffectBox.icon.bmp | Bin 0 -> 824 bytes ...HandyControl.Controls.ButtonGroup.icon.bmp | Bin 0 -> 822 bytes ...ontrol.Controls.CalendarWithClock.icon.bmp | Bin 0 -> 824 bytes .../Icons/HandyControl.Controls.Card.icon.bmp | Bin 0 -> 824 bytes .../HandyControl.Controls.Carousel.icon.bmp | Bin 0 -> 822 bytes ...ndyControl.Controls.CheckComboBox.icon.bmp | Bin 0 -> 824 bytes ...HandyControl.Controls.CirclePanel.icon.bmp | Bin 0 -> 824 bytes ...ontrol.Controls.CircleProgressBar.icon.bmp | Bin 0 -> 824 bytes .../HandyControl.Controls.Clock.icon.bmp | Bin 0 -> 824 bytes .../Icons/HandyControl.Controls.Col.icon.bmp | Bin 0 -> 822 bytes ...HandyControl.Controls.ColorPicker.icon.bmp | Bin 0 -> 824 bytes ...ndyControl.Controls.CompareSlider.icon.bmp | Bin 0 -> 822 bytes ...ontrol.Controls.ContextMenuButton.icon.bmp | Bin 0 -> 824 bytes ....Controls.ContextMenuToggleButton.icon.bmp | Bin 0 -> 824 bytes .../HandyControl.Controls.CoverFlow.icon.bmp | Bin 0 -> 824 bytes .../HandyControl.Controls.CoverView.icon.bmp | Bin 0 -> 824 bytes ...andyControl.Controls.DashedBorder.icon.bmp | Bin 0 -> 824 bytes ...dyControl.Controls.DateTimePicker.icon.bmp | Bin 0 -> 822 bytes .../HandyControl.Controls.Dialog.icon.bmp | Bin 0 -> 824 bytes .../HandyControl.Controls.Divider.icon.bmp | Bin 0 -> 824 bytes .../HandyControl.Controls.Drawer.icon.bmp | Bin 0 -> 824 bytes .../HandyControl.Controls.FlexPanel.icon.bmp | Bin 0 -> 822 bytes .../HandyControl.Controls.FlipClock.icon.bmp | Bin 0 -> 824 bytes .../HandyControl.Controls.GifImage.icon.bmp | Bin 0 -> 822 bytes .../HandyControl.Controls.GotoTop.icon.bmp | Bin 0 -> 824 bytes .../HandyControl.Controls.Gravatar.icon.bmp | Bin 0 -> 822 bytes .../HandyControl.Controls.Growl.icon.bmp | Bin 0 -> 824 bytes ...dyControl.Controls.HoneycombPanel.icon.bmp | Bin 0 -> 824 bytes .../HandyControl.Controls.ImageBlock.icon.bmp | Bin 0 -> 824 bytes ...ndyControl.Controls.ImageSelector.icon.bmp | Bin 0 -> 824 bytes ...HandyControl.Controls.ImageViewer.icon.bmp | Bin 0 -> 822 bytes .../HandyControl.Controls.ListClock.icon.bmp | Bin 0 -> 822 bytes ...ndyControl.Controls.LoadingCircle.icon.bmp | Bin 0 -> 824 bytes ...HandyControl.Controls.LoadingLine.icon.bmp | Bin 0 -> 824 bytes .../HandyControl.Controls.Magnifier.icon.bmp | Bin 0 -> 824 bytes 45 files changed, 59 insertions(+), 3 deletions(-) create mode 100644 src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.AnimationPath.icon.bmp create mode 100644 src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.Arc.icon.bmp create mode 100644 src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.Badge.icon.bmp create mode 100644 src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.BlendEffectBox.icon.bmp create mode 100644 src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.ButtonGroup.icon.bmp create mode 100644 src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.CalendarWithClock.icon.bmp create mode 100644 src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.Card.icon.bmp create mode 100644 src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.Carousel.icon.bmp create mode 100644 src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.CheckComboBox.icon.bmp create mode 100644 src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.CirclePanel.icon.bmp create mode 100644 src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.CircleProgressBar.icon.bmp create mode 100644 src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.Clock.icon.bmp create mode 100644 src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.Col.icon.bmp create mode 100644 src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.ColorPicker.icon.bmp create mode 100644 src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.CompareSlider.icon.bmp create mode 100644 src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.ContextMenuButton.icon.bmp create mode 100644 src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.ContextMenuToggleButton.icon.bmp create mode 100644 src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.CoverFlow.icon.bmp create mode 100644 src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.CoverView.icon.bmp create mode 100644 src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.DashedBorder.icon.bmp create mode 100644 src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.DateTimePicker.icon.bmp create mode 100644 src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.Dialog.icon.bmp create mode 100644 src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.Divider.icon.bmp create mode 100644 src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.Drawer.icon.bmp create mode 100644 src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.FlexPanel.icon.bmp create mode 100644 src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.FlipClock.icon.bmp create mode 100644 src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.GifImage.icon.bmp create mode 100644 src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.GotoTop.icon.bmp create mode 100644 src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.Gravatar.icon.bmp create mode 100644 src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.Growl.icon.bmp create mode 100644 src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.HoneycombPanel.icon.bmp create mode 100644 src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.ImageBlock.icon.bmp create mode 100644 src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.ImageSelector.icon.bmp create mode 100644 src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.ImageViewer.icon.bmp create mode 100644 src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.ListClock.icon.bmp create mode 100644 src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.LoadingCircle.icon.bmp create mode 100644 src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.LoadingLine.icon.bmp create mode 100644 src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.Magnifier.icon.bmp diff --git a/build/build.cake b/build/build.cake index 7d17c5cc..745cc7ce 100644 --- a/build/build.cake +++ b/build/build.cake @@ -64,7 +64,7 @@ Task("Build") { Configuration = "Release", Framework = "net5.0", - OutputDirectory = "lib/net50" + OutputDirectory = "lib/net5.0" }; DotNetCoreBuild("../src/Net_40/HandyControl_Net_40/HandyControl_Net_40.csproj", settingsNet40); diff --git a/build/build.nuspec b/build/build.nuspec index 63028dbc..232dc078 100644 --- a/build/build.nuspec +++ b/build/build.nuspec @@ -2,7 +2,7 @@ HandyControl - 2.5.0.2 + 3.0.0-rc.1 HandyOrg HandyOrg HandyOrg @@ -25,6 +25,7 @@ + @@ -74,6 +75,17 @@ + + + + + + + + + + + diff --git a/src/Net_40/HandyControlDemo_Net_40/HandyControlDemo_Net_40.csproj b/src/Net_40/HandyControlDemo_Net_40/HandyControlDemo_Net_40.csproj index 27ea16cb..b7b50a5e 100644 --- a/src/Net_40/HandyControlDemo_Net_40/HandyControlDemo_Net_40.csproj +++ b/src/Net_40/HandyControlDemo_Net_40/HandyControlDemo_Net_40.csproj @@ -6,6 +6,7 @@ net40 ..\..\Shared\HandyControlDemo_Shared\Resources\Img\icon.ico 0108 + true diff --git a/src/Net_40/HandyControl_Net_40/HandyControl_Net_40.csproj b/src/Net_40/HandyControl_Net_40/HandyControl_Net_40.csproj index 1a5a3a2e..77e8ee5e 100644 --- a/src/Net_40/HandyControl_Net_40/HandyControl_Net_40.csproj +++ b/src/Net_40/HandyControl_Net_40/HandyControl_Net_40.csproj @@ -8,8 +8,9 @@ true snupkg 0067;0649;1591 + true - + bin\$(Configuration)\$(TargetFramework)\HandyControl.xml diff --git a/src/Net_GE45/HandyControlDemo_Net_GE45/HandyControlDemo_Net_GE45.csproj b/src/Net_GE45/HandyControlDemo_Net_GE45/HandyControlDemo_Net_GE45.csproj index a07b3848..ab9d4cac 100644 --- a/src/Net_GE45/HandyControlDemo_Net_GE45/HandyControlDemo_Net_GE45.csproj +++ b/src/Net_GE45/HandyControlDemo_Net_GE45/HandyControlDemo_Net_GE45.csproj @@ -6,6 +6,7 @@ netcoreapp3.0;netcoreapp3.1;net45;net462;net47;net48;net5.0 ..\..\Shared\HandyControlDemo_Shared\Resources\Img\icon.ico 0108 + true diff --git a/src/Net_GE45/HandyControl_Net_GE45/HandyControl_Net_GE45.csproj b/src/Net_GE45/HandyControl_Net_GE45/HandyControl_Net_GE45.csproj index 0c2a5ff4..9fae21a3 100644 --- a/src/Net_GE45/HandyControl_Net_GE45/HandyControl_Net_GE45.csproj +++ b/src/Net_GE45/HandyControl_Net_GE45/HandyControl_Net_GE45.csproj @@ -8,6 +8,7 @@ true snupkg 0067;0649;1591 + true bin\$(Configuration)\$(TargetFramework)\HandyControl.xml diff --git a/src/Shared/HandyControl_Shared/HandyControl_Shared.projitems b/src/Shared/HandyControl_Shared/HandyControl_Shared.projitems index 292313cf..36356852 100644 --- a/src/Shared/HandyControl_Shared/HandyControl_Shared.projitems +++ b/src/Shared/HandyControl_Shared/HandyControl_Shared.projitems @@ -1100,4 +1100,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.AnimationPath.icon.bmp b/src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.AnimationPath.icon.bmp new file mode 100644 index 0000000000000000000000000000000000000000..e75905dca854573afbae77b6fab0e50ea95cdbfa GIT binary patch literal 822 zcmaJ-u@QqX5F?j9mog({0tRsJ0qE)J8NfX~Jp<5FWdsJGr%y{1i|GCgvCsaKWl4V9 z`SM!CQKCMv?)$nFkH~+^>&EpXwqnc7cN`gkJ%VGu*r1c$svSknxrJp z?KqA$++w^=76JZAB14F}(h)4D;fgx;UsV+@g$rLQFZ5K}st^mhuEXtly+UZj&z$Nd Nvp{!QGLLDonh*O*0dN2S literal 0 HcmV?d00001 diff --git a/src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.Arc.icon.bmp b/src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.Arc.icon.bmp new file mode 100644 index 0000000000000000000000000000000000000000..603745492b3a81b131a9812d2f00105eb355c19c GIT binary patch literal 824 zcmcJMu?>ST5JjD&k5XoYOc14}_ZIHyJ&St=V1!ik4B(zVEqU^fqLV;&nw;~-aW0>8aMw~l(tn#A9VYbkUS}N~r?VBIbE!M)(kdD!bxpp)8op2ox$n|%3uA6QoqY)UDF;JtUn2-uROw4;!TF$%Kcg+)nIs&W@B6x{_p zeYIvA1CSO3C*smV<6FTta|b_qp3(dATqi9k>Gx!I+~xmy)mcM9go8;V0=7G4{bNAs In#PRAADc*_>i_@% literal 0 HcmV?d00001 diff --git a/src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.BlendEffectBox.icon.bmp b/src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.BlendEffectBox.icon.bmp new file mode 100644 index 0000000000000000000000000000000000000000..74ceecd27494ff92cd438d6d81a41c2c50ab9704 GIT binary patch literal 824 zcmb7>F%p6>5JjW*j-^NN1det3+=AX)a1{~?&KT$GVg=CX8uV1b=J-VX>t?my$+FEJlb&_LkQk`G8jhUEnZ^uYO&L5UOrOp z=9H53wU3UddFh8?uu?I<4yB4l-=!8X$5HM3UOX8L0}m!pE*DJOwoTKhL);}o z>fy?;GBDLci~^Ey^~fS<>LF_IkZ|>+h9@wTfLh>IV`abtA0EZ<=)=RHb;<;q4*-Gu B8M*)f literal 0 HcmV?d00001 diff --git a/src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.CalendarWithClock.icon.bmp b/src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.CalendarWithClock.icon.bmp new file mode 100644 index 0000000000000000000000000000000000000000..5228613d8adf48c3b7f61a4826a50b08fe390811 GIT binary patch literal 824 zcmbV}OAde_3`DE$jZ2T<35;v@p4tPc8@D)N%!FVdXhWNRUI!A~x^xz7Mx5Zo z-(tS?^w2=?=D(h++NccNRT!|CKlh_>pqJw@!Xht}LJcpN>t%g1TFL3_8A`a4<0Y6R rZ=QmMn7qG0a`fiWp$SOJ_`kqls;Gobmg1=+K39@g6qe`+_>q|1+_eVr literal 0 HcmV?d00001 diff --git a/src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.Card.icon.bmp b/src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.Card.icon.bmp new file mode 100644 index 0000000000000000000000000000000000000000..a364463dc1eab2b165b2ce02844e994e4fcf7104 GIT binary patch literal 824 zcmbu7u?@mN3`Gy<5hWuq0isUN5Mc)PxE&aUFaTGO9_UCQp`i^=HbSS1bmYXBZGGF{ z_C-pzUQLW(NnGHwkB`h;>SOxFR9y;$&U8ukN=G&rx*PekX@45BfAoyIqth#p{?TB+ zwN^(|Ov)@3g>wHr_p09HxppC>!57i;_2sFg;sg-V`2NGbK-NAQ3_=>;U*9TZTLFYL jzMt;(eAx*g!E&AT-`^Jm6^?%O@F7rrQcU`p5gYRclYt>! literal 0 HcmV?d00001 diff --git a/src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.Carousel.icon.bmp b/src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.Carousel.icon.bmp new file mode 100644 index 0000000000000000000000000000000000000000..a752c4dbc46fbb526fcbb8509dfa15edeaac9af9 GIT binary patch literal 822 zcmd6jK@NZ*3;_30>s=g5=zdH3zR!@AYfrFPx;7-(k5lXYAnZo|I5vAz3g0$ zGx@|he9y)mbAQYHzSqeO(&Q$-cQ?e88GL9&>0}b|ugA0c@GvWiMgBI9rV`Ip#hgzm zdGE=Rtnx8N$Pj`gzw9GtNml&@o21V(od?f?oPPB_Tw5U%ruIHo&}3R}rMmL}Gp~iK R+}Xb(b#3wVTfuKS_W>oO5j+3@ literal 0 HcmV?d00001 diff --git a/src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.CirclePanel.icon.bmp b/src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.CirclePanel.icon.bmp new file mode 100644 index 0000000000000000000000000000000000000000..6ba8b2ea5fbca2083101e66b7149d2032507daac GIT binary patch literal 824 zcmbu7F%H5o3`Gs>h>;_30>s=s7s>&$XDruY%2W;ktiZxrzVeavX@w{vYOEjoIdS4P zVYje4wy+z_)oaddUHx;!4@=JKfa$IG@9|+c;DTT&CC1puz!FYI2XM|=z&DAIra(Kq zZ`;f1e81lCL14*Drr-#`IFZg{*O62UC!<~%YsOZJspcubSQXQ~3?-=%BBT5mQ_uhW z^m=~1FW)nSFy%ejf|L?(^tE5)wZ%+Si{1E=gI@@R@h%Qy>1}n`1veR62O!Lz2=O1r literal 0 HcmV?d00001 diff --git a/src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.CircleProgressBar.icon.bmp b/src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.CircleProgressBar.icon.bmp new file mode 100644 index 0000000000000000000000000000000000000000..8b03f28929ecaad4ed836d5d9023b2d545cbdfdb GIT binary patch literal 824 zcmZ?rwP0od12Z700mK4O%*Y@C7H0y=ALfH#umF(w&+vapqi>`GUteD*A^=bs#B8A2 mkMBPaL_lT8>M?CVGl9dF>gDtT!FaQ9kcnH@3 literal 0 HcmV?d00001 diff --git a/src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.Clock.icon.bmp b/src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.Clock.icon.bmp new file mode 100644 index 0000000000000000000000000000000000000000..b244f277556c4dfd17427b554309641a487618f8 GIT binary patch literal 824 zcma))!41MN3;+ZC5l=>70>rxy9+8kbK*#9@-J~l}1WW;B0qBQsImIZl9H<&Okz=0| z+evZQEnFO1)(vy@oin$N_BsCJQf4%;3~osB{xcGg6ahmBP196WwT}aZEk^MgxNTeS zeO=e5u6x|>2nt(_xO50Qma;6b=S%;58NrB4Lbw8$8#&}BEU~x%Qeq^@z2;c61pt$* zsEbq$V735Y!qW_@(?Fqy*a5&scpZ+e`8*$vH@wa#uQ%s)y?H+kulp%aF#WxRr*J|h Y{)ZGoV$?$UJQ3=vfmf;f@zLzC?_J1i2jTw z3`IZE(pg->7B+cScVtv;fluY2r~)E>&O5(nNk1}z6H`)3V34i#yo>;tl5^%Z&qKtB x+YB~e#_GjE_Y30TF-T=~-Tlb_dzM`{e)t literal 0 HcmV?d00001 diff --git a/src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.ContextMenuButton.icon.bmp b/src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.ContextMenuButton.icon.bmp new file mode 100644 index 0000000000000000000000000000000000000000..ad377afcaf0e7f3d738c56b65cff522dcc6ca8ec GIT binary patch literal 824 zcmchV!41MN3`GOn5l2Q~0>ruZ43K-L=m1$I17rkFnT9qfT+3HJvaD7_^g`rVw)67s zRPF5TVCuTUU$9S~y))-p-{bs#(G4*9@C{F10Hkd*<_!Q%EoJ}! literal 0 HcmV?d00001 diff --git a/src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.ContextMenuToggleButton.icon.bmp b/src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.ContextMenuToggleButton.icon.bmp new file mode 100644 index 0000000000000000000000000000000000000000..ad377afcaf0e7f3d738c56b65cff522dcc6ca8ec GIT binary patch literal 824 zcmchV!41MN3`GOn5l2Q~0>ruZ43K-L=m1$I17rkFnT9qfT+3HJvaD7_^g`rVw)67s zRPF5TVCuTUU$9S~y))-p-{bs#(G4*9@C{F10Hkd*<_!Q%EoJ}! literal 0 HcmV?d00001 diff --git a/src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.CoverFlow.icon.bmp b/src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.CoverFlow.icon.bmp new file mode 100644 index 0000000000000000000000000000000000000000..2307d6e79822590ac777df4943b6a3815231b4c6 GIT binary patch literal 824 zcmZ?rwP0od12Z700mK4O%*Y@C7H0y=ALfH#umF(w&+wnt=o<#WZzE8-6B0nvjj0z? zJzO_Xid6M*>);ykn-8%ISr?J&ff|7-fws^{J;X@_&4(z1xCG*5{O*AV3!H(e9&RSG SvB>I?6<}2ZS4?XL0|Njc3*YDf literal 0 HcmV?d00001 diff --git a/src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.CoverView.icon.bmp b/src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.CoverView.icon.bmp new file mode 100644 index 0000000000000000000000000000000000000000..402ec272471cad29167787953413cc017d5d8d9e GIT binary patch literal 824 zcmZ?rwP0od12Z700mK4O%*Y@C7H0y=ALfH#umF(w&+wn7=o{(42?IdPzz}vKPn>iY gk*0%M?!;vdX|5q%H7Kv^{H_|>B+26FMMr-k_tGx3mk{5u%jkL(7jhY!#|f&d;qKn9V3fdK%O CDoJku literal 0 HcmV?d00001 diff --git a/src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.DateTimePicker.icon.bmp b/src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.DateTimePicker.icon.bmp new file mode 100644 index 0000000000000000000000000000000000000000..a25c8fab8e8c434fed4938eba0104ce02838cf67 GIT binary patch literal 822 zcmb`D!3lsc3`Hy6#iJuQfdlmJs&)zYQ7>NWw_iiBqCpHvXv6zIrM~Y1 oofliV3Xg*^XiivsPg&6#xJL literal 0 HcmV?d00001 diff --git a/src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.Dialog.icon.bmp b/src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.Dialog.icon.bmp new file mode 100644 index 0000000000000000000000000000000000000000..54496c3a86bf63852849e72b0c5293620661f14e GIT binary patch literal 824 zcmZ?rwP0od12Z700mK4O%*Y@C7H0y=ALfH#umF(w&+z{niNJ|y05KS-{Nwu%1QAdf z9`#bShkyuZ2%LdmJ*IW|)kBPhlR)hR)x)iTI1EiakP8QJXA^He+;BJpXd1!r!DBw$ dF+c{@-Ggj69yZ+lc+?S-N%$YL>t_3I#WFwo8tP;XTRu9pLX+A_8(>=J%hdTf(1Jis= wS3yk1Wj-$TnC{2w0El*=6y@e)bqOBxvAPFM5G{P*?u57&lSGbRG^4O`0j-Q6#sB~S literal 0 HcmV?d00001 diff --git a/src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.FlipClock.icon.bmp b/src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.FlipClock.icon.bmp new file mode 100644 index 0000000000000000000000000000000000000000..c432a7c7dda36d095189db3d930af79c4cdbb644 GIT binary patch literal 824 zcmb7?Aritc5Jdxc2FVdP0fWZZS3`Y$4^WSU3-lH>P*Gn49H9a**z(9{b}}$!U?<7^ z{rfg)CS690k@GQUoiQh`IdD_&52^3Rn%-c!{}7$)Y=9?8vg`>;00tvSo2H55_|0*n3UdlwG>6MUabvAkYawq;_=#-q!!R24yLu(cSE(0x_1`&tVEhR{tB uX_^YwO6u#+Q$kogPZPq@dM|ZpXTd!BCoD(*gTdne{om}wKEbv&oO=M2-~tZ- literal 0 HcmV?d00001 diff --git a/src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.GifImage.icon.bmp b/src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.GifImage.icon.bmp new file mode 100644 index 0000000000000000000000000000000000000000..e75905dca854573afbae77b6fab0e50ea95cdbfa GIT binary patch literal 822 zcmaJ-u@QqX5F?j9mog({0tRsJ0qE)J8NfX~Jp<5FWdsJGr%y{1i|GCgvCsaKWl4V9 z`SM!CQKCMv?)$nFkH~+^>&EpXwqnc7cN`gkJ%VGu*r1c$svSknxrJp z?KqA$++w^=76JZAB14F}(h)4D;fgx;UsV+@g$rLQFZ5K}st^mhuEXtly+UZj&z$Nd Nvp{!QGLLDonh*O*0dN2S literal 0 HcmV?d00001 diff --git a/src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.GotoTop.icon.bmp b/src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.GotoTop.icon.bmp new file mode 100644 index 0000000000000000000000000000000000000000..69869210d4ce23577d1628273032b4e0778d6867 GIT binary patch literal 824 zcmb`CI}U^}3`7m|h>|040z^&EwQ{k&)3#ycK_e?4w%LeS$;|WMoYyg#uN`&6UYiP)(GjqFuk}VhCH>|>HUV)#!aA*P)<<`8c*bb38YRq@J@gwT2;w8pp&6859d5TRQ zv2>M>E6xb%@oXVa_=OihUR}L>=tT>zd{I3Q6k2L|hnb+3pD@W@t>*z5pBc}v{=)Z$ HiTP$Xyp95= literal 0 HcmV?d00001 diff --git a/src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.Gravatar.icon.bmp b/src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.Gravatar.icon.bmp new file mode 100644 index 0000000000000000000000000000000000000000..aeecd4413198b76a8e6ed4acb9d1ea93c0e6f3b4 GIT binary patch literal 822 zcmZ?rHDhJ~12Z700mK4O%*Y@C76%bW_#hZ2@Sov75Pc&8KvcrjJK+UD^Me z0C@a6XU-f*=mHsVEtu*dYVeTA;R%n0*RNma=jTI=1u}qKG?S5a0j1!I;ac#khdUU~ XpsspS-9wUpfqnj%g}oO3sR@@RD%_@lFNXVL|^Qe zFYb>I$CVr6z`AE{K6BxALw-qpyOud5SbEp%czr`NwgC6u#~2YdDOKUiQ`xqyafFfv z{`Ivkib6BFz_vSgxPfUr?+>oft%wkUT*`6ut!coFQC%u9xeEt_)DoD@r<8b*S$@>H t9{GzuZnU92|N6nuB<2#2-U)tW1sCH zJlNO86nSDF=v<$Ri=m^$Fz`{5u2NhzkybI#V<13nNWwJYIs znx-Qx5mH+oKgL*tB@Q4ZSY#Z>HV+^qHiXcIB?~4c&bb~Q>_2{<=brvxdWHV`@?KP> kl-eTz!1R^z``=4OEXz{c2U6SSx17y$My|>8DS|0hximJM5t;VsO=a;7I-uNRQm*vhryO}rhpNq+OqfFqdY2I5J6;L?8|a;asn#;`tb!&Bc>Lh%8&0q01=S!@D1$m)S2a4lFBqnQse;nmqmxD;bm57C88p1k$kwEF~*BvL(4u~h9L aAW5WpQq4zp8*=yn*~9=ydLW5pU;qGrxG*39 literal 0 HcmV?d00001 diff --git a/src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.ImageViewer.icon.bmp b/src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.ImageViewer.icon.bmp new file mode 100644 index 0000000000000000000000000000000000000000..49b5c3768dda244040cc188f9ae7c0485a412b90 GIT binary patch literal 822 zcma)(K@P$&3ETkttNFFGqQMHBn;Z|Q0q;kIp?=XtU&auD!6a+;>)qwL?EHaW;& z2`0FCvPrse#Tj*g3_*MeEu4{83k<#~XT3!S`4x^Wg z&m3$%;%h!tRmofu`STW3+xfqmX6Sk|Co#Sxszt*jMNv>u=2pV`GUteD*A^=bs#B8A2 mkMBPaL_lT8>M?CVGl9dF>gDtT!FaQ9kcnH@3 literal 0 HcmV?d00001 diff --git a/src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.LoadingLine.icon.bmp b/src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.LoadingLine.icon.bmp new file mode 100644 index 0000000000000000000000000000000000000000..8b03f28929ecaad4ed836d5d9023b2d545cbdfdb GIT binary patch literal 824 zcmZ?rwP0od12Z700mK4O%*Y@C7H0y=ALfH#umF(w&+vapqi>`GUteD*A^=bs#B8A2 mkMBPaL_lT8>M?CVGl9dF>gDtT!FaQ9kcnH@3 literal 0 HcmV?d00001 diff --git a/src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.Magnifier.icon.bmp b/src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.Magnifier.icon.bmp new file mode 100644 index 0000000000000000000000000000000000000000..a60b5a786799bef33e0729f2b5ac5150ce0b79a1 GIT binary patch literal 824 zcmbu5u}*_f6oyfE}AZEpyW*rYey%gMRlf9^T|{lndb(yd$08}`+HpDEW}{+#>gOR>8I$4=S(9v1Px zAFOGbWmyW*F+8xY>qkmN+0!M5nfCudpMzJLrpfa>ilQJ0k|e3?S^#}jUt(F7>$+*0 zK4tUAFl4%-C?+LT29D!+`@Q+uY{mEX@@g1HRaHm^PtXRH`>>Gkmgjk6o}Sa$Ojee` z>V2hY+L&iRdX|_BKI;!vRmVJTgkdN#87vnI$8p9y*5L*NN|NAfy|!&T%d!E_>}0SG mHyDtfX@knZzVEkfJIRy8I^1ADdZrC3Pr|}m_{k-173B|>7(B-S literal 0 HcmV?d00001 From ba486f81bd86ffc3ffacbfdb741151320e30e127 Mon Sep 17 00:00:00 2001 From: Mahdi Hosseini Date: Tue, 8 Sep 2020 20:14:33 +0430 Subject: [PATCH 12/24] Update VisualStudioToolsManifest.xml --- build/tools/VisualStudioToolsManifest.xml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/build/tools/VisualStudioToolsManifest.xml b/build/tools/VisualStudioToolsManifest.xml index 31381dd1..0fb0dc19 100644 --- a/build/tools/VisualStudioToolsManifest.xml +++ b/build/tools/VisualStudioToolsManifest.xml @@ -24,6 +24,7 @@ + @@ -82,4 +83,4 @@ - \ No newline at end of file + From 6dd74fb44a92671c70ce35c81f1eab986dce80cc Mon Sep 17 00:00:00 2001 From: NaBian <836904362@qq.com> Date: Tue, 8 Sep 2020 23:44:35 +0800 Subject: [PATCH 13/24] add the rest of toolbox icons --- .../Other}/BlendEffectBox.cs | 2 +- .../HandyControl_Shared.projitems | 34 ++++++++++++++++-- .../HandyControl.Controls.FlipClock.icon.bmp | Bin 824 -> 824 bytes .../HandyControl.Controls.NotifyIcon.icon.bmp | Bin 0 -> 824 bytes ...ndyControl.Controls.NumericUpDown.icon.bmp | Bin 0 -> 822 bytes ...HandyControl.Controls.OutlineText.icon.bmp | Bin 0 -> 824 bytes .../HandyControl.Controls.Pagination.icon.bmp | Bin 0 -> 822 bytes .../HandyControl.Controls.PinBox.icon.bmp | Bin 0 -> 822 bytes .../HandyControl.Controls.Poptip.icon.bmp | Bin 0 -> 824 bytes ...ndyControl.Controls.PreviewSlider.icon.bmp | Bin 0 -> 822 bytes ...dyControl.Controls.ProgressButton.icon.bmp | Bin 0 -> 824 bytes ...andyControl.Controls.PropertyGrid.icon.bmp | Bin 0 -> 822 bytes ...HandyControl.Controls.RangeSlider.icon.bmp | Bin 0 -> 822 bytes ...ndyControl.Controls.RelativePanel.icon.bmp | Bin 0 -> 824 bytes .../Icons/HandyControl.Controls.Row.icon.bmp | Bin 0 -> 822 bytes ...andyControl.Controls.RunningBlock.icon.bmp | Bin 0 -> 824 bytes .../HandyControl.Controls.SearchBar.icon.bmp | Bin 0 -> 824 bytes .../HandyControl.Controls.Shield.icon.bmp | Bin 0 -> 824 bytes .../HandyControl.Controls.SideMenu.icon.bmp | Bin 0 -> 822 bytes ...HandyControl.Controls.SimplePanel.icon.bmp | Bin 0 -> 824 bytes .../HandyControl.Controls.SimpleText.icon.bmp | Bin 0 -> 822 bytes ...HandyControl.Controls.SplitButton.icon.bmp | Bin 0 -> 824 bytes .../HandyControl.Controls.StepBar.icon.bmp | Bin 0 -> 822 bytes .../Icons/HandyControl.Controls.Tag.icon.bmp | Bin 0 -> 822 bytes .../HandyControl.Controls.TimeBar.icon.bmp | Bin 0 -> 824 bytes .../HandyControl.Controls.TimePicker.icon.bmp | Bin 0 -> 822 bytes ...HandyControl.Controls.ToggleBlock.icon.bmp | Bin 0 -> 824 bytes .../HandyControl.Controls.Transfer.icon.bmp | Bin 0 -> 824 bytes ...trols.TransitioningContentControl.icon.bmp | Bin 0 -> 822 bytes ...dyControl.Controls.WaterfallPanel.icon.bmp | Bin 0 -> 822 bytes .../HandyControl.Controls.Watermark.icon.bmp | Bin 0 -> 824 bytes ...Control.Controls.WatermarkTextBox.icon.bmp | Bin 0 -> 822 bytes ...yControl.Controls.WaveProgressBar.icon.bmp | Bin 0 -> 824 bytes ...ndyControl.Expression.Shapes.Arc.icon.bmp} | Bin .../Themes/Styles/BlendEffectBox.xaml | 6 ++-- 35 files changed, 36 insertions(+), 6 deletions(-) rename src/Shared/HandyControl_Shared/{Media/Effects => Controls/Other}/BlendEffectBox.cs (99%) create mode 100644 src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.NotifyIcon.icon.bmp create mode 100644 src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.NumericUpDown.icon.bmp create mode 100644 src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.OutlineText.icon.bmp create mode 100644 src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.Pagination.icon.bmp create mode 100644 src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.PinBox.icon.bmp create mode 100644 src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.Poptip.icon.bmp create mode 100644 src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.PreviewSlider.icon.bmp create mode 100644 src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.ProgressButton.icon.bmp create mode 100644 src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.PropertyGrid.icon.bmp create mode 100644 src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.RangeSlider.icon.bmp create mode 100644 src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.RelativePanel.icon.bmp create mode 100644 src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.Row.icon.bmp create mode 100644 src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.RunningBlock.icon.bmp create mode 100644 src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.SearchBar.icon.bmp create mode 100644 src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.Shield.icon.bmp create mode 100644 src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.SideMenu.icon.bmp create mode 100644 src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.SimplePanel.icon.bmp create mode 100644 src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.SimpleText.icon.bmp create mode 100644 src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.SplitButton.icon.bmp create mode 100644 src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.StepBar.icon.bmp create mode 100644 src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.Tag.icon.bmp create mode 100644 src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.TimeBar.icon.bmp create mode 100644 src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.TimePicker.icon.bmp create mode 100644 src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.ToggleBlock.icon.bmp create mode 100644 src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.Transfer.icon.bmp create mode 100644 src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.TransitioningContentControl.icon.bmp create mode 100644 src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.WaterfallPanel.icon.bmp create mode 100644 src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.Watermark.icon.bmp create mode 100644 src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.WatermarkTextBox.icon.bmp create mode 100644 src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.WaveProgressBar.icon.bmp rename src/Shared/HandyControl_Shared/Resources/Icons/{HandyControl.Controls.Arc.icon.bmp => HandyControl.Expression.Shapes.Arc.icon.bmp} (100%) diff --git a/src/Shared/HandyControl_Shared/Media/Effects/BlendEffectBox.cs b/src/Shared/HandyControl_Shared/Controls/Other/BlendEffectBox.cs similarity index 99% rename from src/Shared/HandyControl_Shared/Media/Effects/BlendEffectBox.cs rename to src/Shared/HandyControl_Shared/Controls/Other/BlendEffectBox.cs index 1a5b47db..4c9a45e1 100644 --- a/src/Shared/HandyControl_Shared/Media/Effects/BlendEffectBox.cs +++ b/src/Shared/HandyControl_Shared/Controls/Other/BlendEffectBox.cs @@ -7,7 +7,7 @@ using System.Windows.Data; using System.Windows.Markup; using System.Windows.Media.Effects; -namespace HandyControl.Media.Effects +namespace HandyControl.Controls { [DefaultProperty("Content")] [ContentProperty("Content")] diff --git a/src/Shared/HandyControl_Shared/HandyControl_Shared.projitems b/src/Shared/HandyControl_Shared/HandyControl_Shared.projitems index 36356852..e92e18b9 100644 --- a/src/Shared/HandyControl_Shared/HandyControl_Shared.projitems +++ b/src/Shared/HandyControl_Shared/HandyControl_Shared.projitems @@ -114,7 +114,7 @@ - + @@ -1102,7 +1102,7 @@ - + @@ -1139,5 +1139,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.FlipClock.icon.bmp b/src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.FlipClock.icon.bmp index c432a7c7dda36d095189db3d930af79c4cdbb644..5b7c6ebfa8a1968faf57a3ddae9f582dd3094318 100644 GIT binary patch delta 76 zcmdnNwu8;m$=8gT0SwH5qy`WRKrthO1XvtI9Oi>yn81IA{}UZ0CkAj#R$%1cn0cNF E07{SxHvj+t delta 73 zcmdnNwu8;g$=8CJ0SwH5qy`WRKrthO1X!F2D1Vp_g24hnVxptu!~m|z@{9r-GtV;t E037!TKL7v# diff --git a/src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.NotifyIcon.icon.bmp b/src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.NotifyIcon.icon.bmp new file mode 100644 index 0000000000000000000000000000000000000000..f0a6c5dcaf7d3e983af86143495a4aca054e42d9 GIT binary patch literal 824 zcmb`FJr2S!3`PTtEQpCCa00}fJ-6se?}Lj%g}oO3sR@@RD%_@lFNXVL|^Qe zFYb>I$CVr6z`AE{K6BxALw-qpyOud5SbEp%czr`NwgC6u#~2YdDOKUiQ`xqyafFfv z{`Ivkib6BFz_vSgxPfUr?+>oft%wkUT*`6ut!coFQC%u9xeEt_)DoD@r<8b*S$@>H t9{GzuZnU92RTi@36m*cKj zhA|5ImRf&m5jNv~Xy=vcyXZrom9PAWvqRqC&-)`y*)*qylyTe7J2O0nX literal 0 HcmV?d00001 diff --git a/src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.OutlineText.icon.bmp b/src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.OutlineText.icon.bmp new file mode 100644 index 0000000000000000000000000000000000000000..907d60d3937dac6102477cdbf04976493b27c820 GIT binary patch literal 824 zcmZ?rwP0od12Z700mK4O%*Y@C7H0y=AL4^xumF(w&+z{niNJ|y05KS-{Nwu%1QAdf zF7*%#(M%Xs4-XI;g%8A7OcG)*X82>Ogoxl$4|hLS2D16MOhywYF(HGLGcW)EAiFCu literal 0 HcmV?d00001 diff --git a/src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.Pagination.icon.bmp b/src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.Pagination.icon.bmp new file mode 100644 index 0000000000000000000000000000000000000000..a34ea8a635a7f1628b93c64d1b0ce38a50a925bc GIT binary patch literal 822 zcmZ?rHDhJ~12Z700mK4O%*Y@C76%bW_#hZ2@SoxTphDkB2TouB)CXZ;l5i=A*+2y! z-+zD$VpR`R02Ifn9w-GtaE(A^_|?NzLKpFu$#>4bwe9bAW;n(~wDs fVz>xU4Kjd>Ll_Xn$O?dLcw$2nhjZZy=)(X2*8%X= literal 0 HcmV?d00001 diff --git a/src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.PinBox.icon.bmp b/src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.PinBox.icon.bmp new file mode 100644 index 0000000000000000000000000000000000000000..7b5d62885b76eaaefe238de1a607520dd37af5fd GIT binary patch literal 822 zcmZ?rHDhJ~12Z700mK4O%*Y@C76%bW_#hZ2@SoxTphDkB2Tnu-h}l5pAK!lfts3bwRXa6+u>ytP&TS67>)VAe)RS0yiJ1j35GPhpUJC4nG5;o+NTmB{raA021&0 A3jhEB literal 0 HcmV?d00001 diff --git a/src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.Poptip.icon.bmp b/src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.Poptip.icon.bmp new file mode 100644 index 0000000000000000000000000000000000000000..eb1d47131ee5c1cff19a05b2151ebc8f90e48fb6 GIT binary patch literal 824 zcmZ?rwP0od12Z700mK4O%*Y@C7H0y=ALfH#umF(w&+wlN^o?i$F&wDei3k8xhOGYM z`ww^!&^$`jfA|PAKRi6#7ZpG(g_{rYD~S8`>(?(|K7IUz)m6yq-@SgZY15{YORINv z27USRg`oOvO>Q6Gy2OPm95Vfv7< kS5RMG`GUteD*A^=bs#B8A2 mkMBPaL_lT8>M?CVGl9dF>gDtT!FaQ9kcnH@3 literal 0 HcmV?d00001 diff --git a/src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.PropertyGrid.icon.bmp b/src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.PropertyGrid.icon.bmp new file mode 100644 index 0000000000000000000000000000000000000000..2d2e33c301fac62fb98f9882c687ad392cf15fb6 GIT binary patch literal 822 zcmb_YNe+M@5W{#k9({r@-~rtIwf|8sUbRwah%AYT6DX5Tr!&DVwl_X3aK;_O?abu) z2iAc%5|_EoWEXtJIT9iksOhz~5_C26!970z`bXFITimDkt0HgFkU;bR literal 0 HcmV?d00001 diff --git a/src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.RangeSlider.icon.bmp b/src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.RangeSlider.icon.bmp new file mode 100644 index 0000000000000000000000000000000000000000..c2a02a92ecadc01fc267b0848d76df0e345fa94d GIT binary patch literal 822 zcmZ?rHDhJ~12Z700mK4O%*Y@C76%bW_#hZ2@Sov7dFUG$5UCfUm`E)UWo=+UPzzkK z6BqzB;nxC`1*!q6UB7NU5CItwEx0@aR1Z=7@%;xNf@lE>;#Ut*3?YHqAx^?Y0u`XC k2Z~??5EFn>6spJN61e$jwgbiS`O_5c6? literal 0 HcmV?d00001 diff --git a/src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.RelativePanel.icon.bmp b/src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.RelativePanel.icon.bmp new file mode 100644 index 0000000000000000000000000000000000000000..611af09f4f111657efd3eb6d27c659ba71007cab GIT binary patch literal 824 zcmbu7u?>JQ3Iiwo@F0%8$nap2ps>cVw)p%qvkuxpYDMV>88JC^#%XT9_1`1DjlVB60xd C1rdAz literal 0 HcmV?d00001 diff --git a/src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.Row.icon.bmp b/src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.Row.icon.bmp new file mode 100644 index 0000000000000000000000000000000000000000..374d090eb00c4de2a39e3c68e334ce52874de961 GIT binary patch literal 822 zcmZ?rHDhJ~12Z700mK4O%*Y@C76%bW_#hZ2@Sov7spuOi0BAT+xf5{!s1mOJhT9YP7>yH2c literal 0 HcmV?d00001 diff --git a/src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.RunningBlock.icon.bmp b/src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.RunningBlock.icon.bmp new file mode 100644 index 0000000000000000000000000000000000000000..66857dd520684d60f42dd72d5c2191c6c7c6383a GIT binary patch literal 824 zcmZ?rwP0od12Z700mK4O%*Y@C7H0y=ALfH#umF(w&+va3pl_%E;v-bCZ*Xry#M|21 zoSdA1B#;YNk1PlgM^-#>;zS4+nMBh9l!Ax=4aW~4R+FI~t_5xa9`^vf29ZT}Cm#R8 QrI5|UBM6Zix+DVw0E__xxBvhE literal 0 HcmV?d00001 diff --git a/src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.SearchBar.icon.bmp b/src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.SearchBar.icon.bmp new file mode 100644 index 0000000000000000000000000000000000000000..a60b5a786799bef33e0729f2b5ac5150ce0b79a1 GIT binary patch literal 824 zcmbu5u}*_f6oyfE}AZEpyW*rYey%gMRlf9^T|{lndb(yd$08}`+HpDEW}{+#>gOR>8I$4=S(9v1Px zAFOGbWmyW*F+8xY>qkmN+0!M5nfCudpMzJLrpfa>ilQJ0k|e3?S^#}jUt(F7>$+*0 zK4tUAFl4%-C?+LT29D!+`@Q+uY{mEX@@g1HRaHm^PtXRH`>>Gkmgjk6o}Sa$Ojee` z>V2hY+L&iRdX|_BKI;!vRmVJTgkdN#87vnI$8p9y*5L*NN|NAfy|!&T%d!E_>}0SG mHyDtfX@knZzVEkfJIRy8I^1ADdZrC3Pr|}m_{k-173B|>7(B-S literal 0 HcmV?d00001 diff --git a/src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.Shield.icon.bmp b/src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.Shield.icon.bmp new file mode 100644 index 0000000000000000000000000000000000000000..23462467c31357bca4ef0fea471436ba5e2baf0d GIT binary patch literal 824 zcmZ?rwP0od12Z700mK4O%*Y@C7H0y=3voj*SO7@;XZTN3^o?|I<;oRbUtcG@0H^?{ z3}QBr{r2^nkMBPqBhPsZ$jE;_7f=~QJ!8F&n7-nAJXQb=L^B`cCcFSyJpiJQ3ifSTQ8)rELs-jej3Nt(rVL=&mSw*mIZf-s zzLI1+@|IY?Vj-KKX|5?4 z0f6ZiOf3xX#;b&8=Iv>g?{6Kh(;^S)lBuM~yOV>#5Fw!`?qm0~{8#r4AJQ3@c(sjGVv)J)nEv;xbO)7S>`CutF+<*lM+ro7yHN<=6*7M4hq6YjZn`q@uaP@FU z0rkS!xEN%ZPox%18;NueP-A3dB#?xt$3?=;_x1G!ssWO45j>2PloX(12mrDnDsd$e NJm%oiGN{BE7y!2s^|t^3 literal 0 HcmV?d00001 diff --git a/src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.TimePicker.icon.bmp b/src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.TimePicker.icon.bmp new file mode 100644 index 0000000000000000000000000000000000000000..4d62b7a6fe4171a883231ee1c4bd442cabb0f477 GIT binary patch literal 822 zcma)(F%E)25JfTe#?m8r0uMmX0ce$0>1i?alp1b9r3IA@JqMsr8wv#zTYWk@*?>`h z*v)75G5dG1ok`z%YQj8b3}2&Xjh^+#v>V8H7jD+=%X2mK69WJbf*^__%ugPssw&&I zvn>0E_kBN(W5;oTRl18-)X-U#rYUt3E{cMv3b3mFBh0=EV3hB|EV-@=vkb%I{!pLJ zP2C6&%#rbC5{kgH=?qdH;iYquBrTo_{Cc$#7>{5OhFijz{kuH$r2zW0dNja7q?Loy|y5~f{{}uTGX42Q{!wX* njiBc0!^cL(rGije=)jt$5`XInkc$8DU$y-3cLh_WxQhJ%C&35| literal 0 HcmV?d00001 diff --git a/src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.WaterfallPanel.icon.bmp b/src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.WaterfallPanel.icon.bmp new file mode 100644 index 0000000000000000000000000000000000000000..c33eec1f5811d13926706e8ed1fc8c1d08fc8e1b GIT binary patch literal 822 zcmbu4!3}^g2t{kW8;_3Q1Ra38TRW52`djp;!ARPa6hh$hpmM}H6pM&Ee0_WhTdC)8 zF6wU~h1C159s?Y55owI7Z{JY!osV$4!>`AAK+VT5Xb>1ZT3X~R#cXkenh`!BPU7&* cc|4M|uYeV5M)-s{iQz-3cm74yJ3!OA0Y*PGvH$=8 literal 0 HcmV?d00001 diff --git a/src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.Watermark.icon.bmp b/src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.Watermark.icon.bmp new file mode 100644 index 0000000000000000000000000000000000000000..4f4c8c1e2dc14bfeff0dbb9645507405da4393f0 GIT binary patch literal 824 zcmb`FF$#b%3`L{v;^+}PfjD>fC_SYIQWw|yX{3B?X)73#5YzWR1#8x&6CX4Bgc_b| zWc2$M=UcDk7ido0*SxAjoq?N*0LJ{eADq@&e1;CcJkK!ZA|ISpSmb~Ae_a6noXPvJ ogkj7v&#=xciFur|gyEz=9CRN#OJaX)^1=TXb4`4G$$0uAHzax@asU7T literal 0 HcmV?d00001 diff --git a/src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.WatermarkTextBox.icon.bmp b/src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.WatermarkTextBox.icon.bmp new file mode 100644 index 0000000000000000000000000000000000000000..07e948482d63b60ade64968cb965502245003182 GIT binary patch literal 822 zcmZ?rHDhJ~12Z700mK4O%*Y@C76%bW_#hZ2@Sov7tP2QlxLDOgq|it_>LJDwsUD~dO(jq}To9{!kj;m)A%%8!6bV4relMlbU_qdP5 zq+b`+?1}RMzb$@J_m)3{|6J)Ufn!$lq2G7Q*l~;b=Rye6YQRz!W7JxcBqhbnL&GZo zYnkQW#oqgrl5-9O3cj1MGLoPm;2qh$*4n$1MOaFangQpWjWHAhARGh;`&5u|sjk^~ cUu!KV*>PX_crf literal 0 HcmV?d00001 diff --git a/src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.Arc.icon.bmp b/src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Expression.Shapes.Arc.icon.bmp similarity index 100% rename from src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Controls.Arc.icon.bmp rename to src/Shared/HandyControl_Shared/Resources/Icons/HandyControl.Expression.Shapes.Arc.icon.bmp diff --git a/src/Shared/HandyControl_Shared/Themes/Styles/BlendEffectBox.xaml b/src/Shared/HandyControl_Shared/Themes/Styles/BlendEffectBox.xaml index e10faffb..4df1aec2 100644 --- a/src/Shared/HandyControl_Shared/Themes/Styles/BlendEffectBox.xaml +++ b/src/Shared/HandyControl_Shared/Themes/Styles/BlendEffectBox.xaml @@ -1,10 +1,10 @@  + xmlns:hc="clr-namespace:HandyControl.Controls"> -