diff --git a/Extensions/AIStudio.Wpf.Block/A.png b/Extensions/AIStudio.Wpf.Block/A.png deleted file mode 100644 index b6949fa..0000000 Binary files a/Extensions/AIStudio.Wpf.Block/A.png and /dev/null differ diff --git a/Extensions/AIStudio.Wpf.Block/AIStudio.Wpf.Block.csproj b/Extensions/AIStudio.Wpf.Block/AIStudio.Wpf.Block.csproj deleted file mode 100644 index 8c745f5..0000000 --- a/Extensions/AIStudio.Wpf.Block/AIStudio.Wpf.Block.csproj +++ /dev/null @@ -1,26 +0,0 @@ - - - - true - AIStudio.Wpf.Controls - akwkevin - https://gitee.com/akwkevin - A.png - - - 1.0.7 - 一个Wpf的流程图控件 - - - - - True - - - - - - - - - diff --git a/Extensions/AIStudio.Wpf.Block/AIStudio.Wpf.Block_4a4h4ycz_wpftmp.csproj b/Extensions/AIStudio.Wpf.Block/AIStudio.Wpf.Block_4a4h4ycz_wpftmp.csproj deleted file mode 100644 index b366cc1..0000000 --- a/Extensions/AIStudio.Wpf.Block/AIStudio.Wpf.Block_4a4h4ycz_wpftmp.csproj +++ /dev/null @@ -1,246 +0,0 @@ - - - AIStudio.Wpf.Block - obj\Debug\ - obj\ - F:\aistudio.-wpf.-diagram\Extensions\AIStudio.Wpf.Block\obj\ - <_TargetAssemblyProjectName>AIStudio.Wpf.Block - - - - true - AIStudio.Wpf.Controls - akwkevin - https://gitee.com/akwkevin - A.png - - - 1.0.7 - 一个Wpf的流程图控件 - - - - True - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Extensions/AIStudio.Wpf.Block/AIStudio.Wpf.Block_attaon4q_wpftmp.csproj b/Extensions/AIStudio.Wpf.Block/AIStudio.Wpf.Block_attaon4q_wpftmp.csproj deleted file mode 100644 index 98ee754..0000000 --- a/Extensions/AIStudio.Wpf.Block/AIStudio.Wpf.Block_attaon4q_wpftmp.csproj +++ /dev/null @@ -1,244 +0,0 @@ - - - AIStudio.Wpf.Block - obj\Debug\ - obj\ - F:\aistudio.-wpf.-diagram\Extensions\AIStudio.Wpf.Block\obj\ - <_TargetAssemblyProjectName>AIStudio.Wpf.Block - - - - true - AIStudio.Wpf.Controls - akwkevin - https://gitee.com/akwkevin - A.png - - - 1.0.7 - 一个Wpf的流程图控件 - - - - True - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Extensions/AIStudio.Wpf.Block/AIStudio.Wpf.Block_axsfel0m_wpftmp.csproj b/Extensions/AIStudio.Wpf.Block/AIStudio.Wpf.Block_axsfel0m_wpftmp.csproj deleted file mode 100644 index 18a4093..0000000 --- a/Extensions/AIStudio.Wpf.Block/AIStudio.Wpf.Block_axsfel0m_wpftmp.csproj +++ /dev/null @@ -1,177 +0,0 @@ - - - AIStudio.Wpf.Block - obj\Debug\ - obj\ - F:\aistudio.-wpf.-diagram\Extensions\AIStudio.Wpf.Block\obj\ - <_TargetAssemblyProjectName>AIStudio.Wpf.Block - - - - true - AIStudio.Wpf.Controls - akwkevin - https://gitee.com/akwkevin - A.png - - - 1.0.7 - 一个Wpf的流程图控件 - - - - True - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Extensions/AIStudio.Wpf.Block/AIStudio.Wpf.Block_gkma3gbh_wpftmp.csproj b/Extensions/AIStudio.Wpf.Block/AIStudio.Wpf.Block_gkma3gbh_wpftmp.csproj deleted file mode 100644 index 98ee754..0000000 --- a/Extensions/AIStudio.Wpf.Block/AIStudio.Wpf.Block_gkma3gbh_wpftmp.csproj +++ /dev/null @@ -1,244 +0,0 @@ - - - AIStudio.Wpf.Block - obj\Debug\ - obj\ - F:\aistudio.-wpf.-diagram\Extensions\AIStudio.Wpf.Block\obj\ - <_TargetAssemblyProjectName>AIStudio.Wpf.Block - - - - true - AIStudio.Wpf.Controls - akwkevin - https://gitee.com/akwkevin - A.png - - - 1.0.7 - 一个Wpf的流程图控件 - - - - True - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Extensions/AIStudio.Wpf.Block/AIStudio.Wpf.Block_ohjhbtlx_wpftmp.csproj b/Extensions/AIStudio.Wpf.Block/AIStudio.Wpf.Block_ohjhbtlx_wpftmp.csproj deleted file mode 100644 index 98ee754..0000000 --- a/Extensions/AIStudio.Wpf.Block/AIStudio.Wpf.Block_ohjhbtlx_wpftmp.csproj +++ /dev/null @@ -1,244 +0,0 @@ - - - AIStudio.Wpf.Block - obj\Debug\ - obj\ - F:\aistudio.-wpf.-diagram\Extensions\AIStudio.Wpf.Block\obj\ - <_TargetAssemblyProjectName>AIStudio.Wpf.Block - - - - true - AIStudio.Wpf.Controls - akwkevin - https://gitee.com/akwkevin - A.png - - - 1.0.7 - 一个Wpf的流程图控件 - - - - True - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Extensions/AIStudio.Wpf.Block/Controls/BlockDecorator.cs b/Extensions/AIStudio.Wpf.Block/Controls/BlockDecorator.cs deleted file mode 100644 index df7b037..0000000 --- a/Extensions/AIStudio.Wpf.Block/Controls/BlockDecorator.cs +++ /dev/null @@ -1,114 +0,0 @@ -using System.Windows; -using System.Windows.Controls; -using System.Windows.Media; - -namespace AIStudio.Wpf.Block.Controls -{ - public class BlockDecorator : Decorator - { - #region 依赖属性 - public static readonly DependencyProperty BackgroundProperty = - DependencyProperty.Register(nameof(Background), typeof(Brush), typeof(BlockDecorator) - , new PropertyMetadata(new SolidColorBrush(Color.FromRgb(255, 255, 255)))); - /// - /// 背景色,默认值为#FFFFFF,白色 - /// - public Brush Background - { - get - { - return (Brush)GetValue(BackgroundProperty); - } - set - { - SetValue(BackgroundProperty, value); - } - } - - public static readonly DependencyProperty PaddingProperty = - DependencyProperty.Register(nameof(Padding), typeof(Thickness), typeof(BlockDecorator) - , new PropertyMetadata(new Thickness(0, 0, 0, 0))); - /// - /// 内边距 - /// - public Thickness Padding - { - get - { - return (Thickness)GetValue(PaddingProperty); - } - set - { - SetValue(PaddingProperty, value); - } - } - - public static readonly DependencyProperty BorderBrushProperty = - DependencyProperty.Register(nameof(BorderBrush), typeof(Brush), typeof(BlockDecorator) - , new PropertyMetadata(default(Brush))); - /// - /// 边框颜色 - /// - public Brush BorderBrush - { - get - { - return (Brush)GetValue(BorderBrushProperty); - } - set - { - SetValue(BorderBrushProperty, value); - } - } - - public static readonly DependencyProperty BorderThicknessProperty = - DependencyProperty.Register(nameof(BorderThickness), typeof(Thickness), typeof(BlockDecorator), new PropertyMetadata(new Thickness(0d))); - /// - /// 边框大小 - /// - public Thickness BorderThickness - { - get - { - return (Thickness)GetValue(BorderThicknessProperty); - } - set - { - SetValue(BorderThicknessProperty, value); - } - } - #endregion - - protected override HitTestResult HitTestCore(PointHitTestParameters hitTestParameters) - { - Point hitPoint = hitTestParameters.HitPoint; - - // 在此处实现自定义的命中测试逻辑 - if (IsPointInsideCustomRegion(hitPoint)) - { - return new PointHitTestResult(this, hitPoint); - } - - return null; // 不命中 - } - - private bool IsPointInsideCustomRegion(Point point) - { - // 在此处检测点是否在自定义区域内 - // 返回 true 表示命中,返回 false 表示不命中 - return false; - } - - protected Brush CreateFillBrush() - { - Brush result = null; - - System.Windows.Media.GradientStopCollection gsc = new System.Windows.Media.GradientStopCollection(); - gsc.Add(new System.Windows.Media.GradientStop(((SolidColorBrush)this.Background).Color, 0)); - LinearGradientBrush backGroundBrush = new LinearGradientBrush(gsc, new Point(0, 0), new Point(0, 1)); - result = backGroundBrush; - - return result; - } - } -} diff --git a/Extensions/AIStudio.Wpf.Block/Controls/BlockPanel.cs b/Extensions/AIStudio.Wpf.Block/Controls/BlockPanel.cs deleted file mode 100644 index 85049a9..0000000 --- a/Extensions/AIStudio.Wpf.Block/Controls/BlockPanel.cs +++ /dev/null @@ -1,114 +0,0 @@ -using System.Windows; -using System.Windows.Controls; -using System.Windows.Media; - -namespace AIStudio.Wpf.Block.Controls -{ - public class BlockPanel : Panel - { - #region 依赖属性 - public static readonly DependencyProperty BackgroundProperty = - DependencyProperty.Register(nameof(Background), typeof(Brush), typeof(BlockPanel) - , new PropertyMetadata(new SolidColorBrush(Color.FromRgb(255, 255, 255)))); - /// - /// 背景色,默认值为#FFFFFF,白色 - /// - public Brush Background - { - get - { - return (Brush)GetValue(BackgroundProperty); - } - set - { - SetValue(BackgroundProperty, value); - } - } - - public static readonly DependencyProperty PaddingProperty = - DependencyProperty.Register(nameof(Padding), typeof(Thickness), typeof(BlockPanel) - , new PropertyMetadata(new Thickness(0, 0, 0, 0))); - /// - /// 内边距 - /// - public Thickness Padding - { - get - { - return (Thickness)GetValue(PaddingProperty); - } - set - { - SetValue(PaddingProperty, value); - } - } - - public static readonly DependencyProperty BorderBrushProperty = - DependencyProperty.Register(nameof(BorderBrush), typeof(Brush), typeof(BlockPanel) - , new PropertyMetadata(default(Brush))); - /// - /// 边框颜色 - /// - public Brush BorderBrush - { - get - { - return (Brush)GetValue(BorderBrushProperty); - } - set - { - SetValue(BorderBrushProperty, value); - } - } - - public static readonly DependencyProperty BorderThicknessProperty = - DependencyProperty.Register(nameof(BorderThickness), typeof(Thickness), typeof(BlockPanel), new PropertyMetadata(new Thickness(0d))); - /// - /// 边框大小 - /// - public Thickness BorderThickness - { - get - { - return (Thickness)GetValue(BorderThicknessProperty); - } - set - { - SetValue(BorderThicknessProperty, value); - } - } - #endregion - - protected override HitTestResult HitTestCore(PointHitTestParameters hitTestParameters) - { - Point hitPoint = hitTestParameters.HitPoint; - - // 在此处实现自定义的命中测试逻辑 - if (IsPointInsideCustomRegion(hitPoint)) - { - return new PointHitTestResult(this, hitPoint); - } - - return null; // 不命中 - } - - private bool IsPointInsideCustomRegion(Point point) - { - // 在此处检测点是否在自定义区域内 - // 返回 true 表示命中,返回 false 表示不命中 - return false; - } - - protected Brush CreateFillBrush() - { - Brush result = null; - - System.Windows.Media.GradientStopCollection gsc = new System.Windows.Media.GradientStopCollection(); - gsc.Add(new System.Windows.Media.GradientStop(((SolidColorBrush)this.Background).Color, 0)); - LinearGradientBrush backGroundBrush = new LinearGradientBrush(gsc, new Point(0, 0), new Point(0, 1)); - result = backGroundBrush; - - return result; - } - } -} diff --git a/Extensions/AIStudio.Wpf.Block/Controls/EndBlockBorder.cs b/Extensions/AIStudio.Wpf.Block/Controls/EndBlockBorder.cs deleted file mode 100644 index f61ab79..0000000 --- a/Extensions/AIStudio.Wpf.Block/Controls/EndBlockBorder.cs +++ /dev/null @@ -1,144 +0,0 @@ -using System; -using System.Windows; -using System.Windows.Media; - -namespace AIStudio.Wpf.Block.Controls -{ - public class EndBlockBorder : BlockDecorator - { - public EndBlockBorder() - { - - } - - #region 方法重写 - public double Insideheight { get; set; } = 6; - public double Insidewidth { get; set; } = 21; - public double Insideoffset { get; set; } = 14; - public double Minwidth { get; set; } = 86; - public double Minheight { get; set; } = 34; - /// - /// 该方法用于测量整个控件的大小 - /// - /// - /// 控件的大小 - protected override Size MeasureOverride(Size constraint) - { - Thickness padding = this.Padding; - - Size result = new Size(); - if (Child != null) - { - //测量子控件的大小 - Child.Measure(constraint); - - result.Width = Math.Max(Minwidth, Child.DesiredSize.Width + padding.Left + padding.Right); - result.Height = Math.Max(Minheight, Child.DesiredSize.Height + padding.Top + padding.Bottom); - } - else - { - result.Width = Minwidth; - result.Height = Minheight; - } - return result; - } - - /// - /// 设置子控件的大小与位置 - /// - /// - /// - protected override Size ArrangeOverride(Size arrangeSize) - { - Thickness padding = this.Padding; - if (Child != null) - { - Child.Arrange(new Rect(new Point(padding.Left, padding.Top), - new Size(Math.Max(Minwidth - padding.Left - padding.Right, Child.DesiredSize.Width ), Math.Max(Minheight - padding.Top - padding.Bottom, Child.DesiredSize.Height)))); - } - return arrangeSize; - } - - /// - /// 绘制控件 - /// - /// - protected override void OnRender(DrawingContext drawingContext) - { - Thickness padding = this.Padding; - - Pen pen = new Pen(); - pen.Brush = this.BorderBrush; - pen.Thickness = this.BorderThickness.Left;// NextForBlockBorder.RoundLayoutValue(BorderThickness.Left, DoubleUtil.DpiScaleX); - - Geometry cg = CreateGeometry(Math.Max(Minwidth, Child?.DesiredSize.Width??0 + padding.Left + padding.Right), Math.Max(Minheight, Child?.DesiredSize.Height??0 + padding.Top + padding.Bottom)); - Brush brush = CreateFillBrush(); - - GuidelineSet guideLines = new GuidelineSet(); - drawingContext.PushGuidelineSet(guideLines); - drawingContext.DrawGeometry(brush, pen, cg); - - } - #endregion - - #region 私有方法 - private Geometry CreateGeometry(double x, double y) - { - #region - PathFigure pf = new PathFigure(); - pf.IsClosed = true; - pf.StartPoint = new Point(0, 2); - - //第一横线 - ArcSegment seg1 = new ArcSegment() { Size = new Size(2, 2), SweepDirection = SweepDirection.Clockwise, Point = new Point(2, 0) }; - pf.Segments.Add(seg1); - - LineSegment seg2 = new LineSegment() { Point = new Point(Insideoffset, 0) }; - pf.Segments.Add(seg2); - - //第二in - QuadraticBezierSegment seg3 = new QuadraticBezierSegment() { Point1 = new Point(Insideoffset + 1, 0), Point2 = new Point(Insideoffset + 2, 2) }; - pf.Segments.Add(seg3); - - QuadraticBezierSegment seg4 = new QuadraticBezierSegment() { Point1 = new Point(Insideoffset + 4, 6), Point2 = new Point(Insideoffset + 5, 6) }; - pf.Segments.Add(seg4); - - LineSegment seg5 = new LineSegment() { Point = new Point(Insideoffset + Insidewidth - 5, 6) }; - pf.Segments.Add(seg5); - - QuadraticBezierSegment seg6 = new QuadraticBezierSegment() { Point1 = new Point(Insideoffset + Insidewidth - 4, 6), Point2 = new Point(Insideoffset + Insidewidth - 2, 2) }; - pf.Segments.Add(seg6); - - QuadraticBezierSegment seg7 = new QuadraticBezierSegment() { Point1 = new Point(Insideoffset + Insidewidth - 1, 0), Point2 = new Point(Insideoffset + Insidewidth, 0) }; - pf.Segments.Add(seg7); - - //第三横线 - LineSegment seg8 = new LineSegment() { Point = new Point(x - 2, 0) }; - pf.Segments.Add(seg8); - - //第四竖线 - ArcSegment seg9 = new ArcSegment() { Size = new Size(2, 2), SweepDirection = SweepDirection.Clockwise, Point = new Point(x, 2) }; - pf.Segments.Add(seg9); - - LineSegment seg10 = new LineSegment() { Point = new Point(x, y - 2) }; - pf.Segments.Add(seg10); - - //第五横线 - ArcSegment seg11 = new ArcSegment() { Size = new Size(2, 2), SweepDirection = SweepDirection.Clockwise, Point = new Point(x - 2, y) }; - pf.Segments.Add(seg11); - - LineSegment seg12 = new LineSegment() { Point = new Point(2, y) }; - pf.Segments.Add(seg12); - - ArcSegment seg13 = new ArcSegment() { Size = new Size(2, 2), SweepDirection = SweepDirection.Clockwise, Point = new Point(0, y - 2) }; - pf.Segments.Add(seg13); - - PathGeometry g1 = new PathGeometry(); - g1.Figures.Add(pf); - #endregion - - return g1; - } - #endregion - } -} diff --git a/Extensions/AIStudio.Wpf.Block/Controls/NextBlockBorder.cs b/Extensions/AIStudio.Wpf.Block/Controls/NextBlockBorder.cs deleted file mode 100644 index 8552a4a..0000000 --- a/Extensions/AIStudio.Wpf.Block/Controls/NextBlockBorder.cs +++ /dev/null @@ -1,164 +0,0 @@ -using System; -using System.Windows; -using System.Windows.Media; - -namespace AIStudio.Wpf.Block.Controls -{ - public class NextBlockBorder : BlockDecorator - { - public NextBlockBorder() - { - - } - - #region 方法重写 - public double Insideheight { get; set; } = 6; - public double Insidewidth { get; set; } = 21; - public double Insideoffset { get; set; } = 14; - public double Minwidth { get; set; } = 86; - public double Minheight { get; set; } = 34; - /// - /// 该方法用于测量整个控件的大小 - /// - /// - /// 控件的大小 - protected override Size MeasureOverride(Size constraint) - { - Thickness padding = this.Padding; - - Size result = new Size(); - if (Child != null) - { - //测量子控件的大小 - Child.Measure(constraint); - - result.Width = Math.Max(Minwidth, Child.DesiredSize.Width + padding.Left + padding.Right); - result.Height = Math.Max(Minheight, Child.DesiredSize.Height + padding.Top + padding.Bottom); - } - else - { - result.Width = Minwidth; - result.Height = Minheight; - } - return result; - } - - /// - /// 设置子控件的大小与位置 - /// - /// - /// - protected override Size ArrangeOverride(Size arrangeSize) - { - Thickness padding = this.Padding; - if (Child != null) - { - Child.Arrange(new Rect(new Point(padding.Left, padding.Top), - new Size(Math.Max(Minwidth - padding.Left - padding.Right, Child.DesiredSize.Width ), Math.Max(Minheight - padding.Top - padding.Bottom, Child.DesiredSize.Height)))); - } - return arrangeSize; - } - - /// - /// 绘制控件 - /// - /// - protected override void OnRender(DrawingContext drawingContext) - { - Thickness padding = this.Padding; - - Pen pen = new Pen(); - pen.Brush = this.BorderBrush; - pen.Thickness = this.BorderThickness.Left;// NextForBlockBorder.RoundLayoutValue(BorderThickness.Left, DoubleUtil.DpiScaleX); - - Geometry cg = CreateGeometry(Math.Max(Minwidth, Child?.DesiredSize.Width??0 + padding.Left + padding.Right), Math.Max(Minheight, Child?.DesiredSize.Height??0 + padding.Top + padding.Bottom)); - Brush brush = CreateFillBrush(); - - GuidelineSet guideLines = new GuidelineSet(); - drawingContext.PushGuidelineSet(guideLines); - drawingContext.DrawGeometry(brush, pen, cg); - - } - #endregion - - #region 私有方法 - private Geometry CreateGeometry(double x, double y) - { - #region - PathFigure pf = new PathFigure(); - pf.IsClosed = true; - pf.StartPoint = new Point(0, 2); - - //第一横线 - ArcSegment seg1 = new ArcSegment() { Size = new Size(2, 2), SweepDirection = SweepDirection.Clockwise, Point = new Point(2, 0) }; - pf.Segments.Add(seg1); - - LineSegment seg2 = new LineSegment() { Point = new Point(Insideoffset, 0) }; - pf.Segments.Add(seg2); - - //第二in - QuadraticBezierSegment seg3 = new QuadraticBezierSegment() { Point1 = new Point(Insideoffset + 1, 0), Point2 = new Point(Insideoffset + 2, 2) }; - pf.Segments.Add(seg3); - - QuadraticBezierSegment seg4 = new QuadraticBezierSegment() { Point1 = new Point(Insideoffset + 4, 6), Point2 = new Point(Insideoffset + 5, 6) }; - pf.Segments.Add(seg4); - - LineSegment seg5 = new LineSegment() { Point = new Point(Insideoffset + Insidewidth - 5, 6) }; - pf.Segments.Add(seg5); - - QuadraticBezierSegment seg6 = new QuadraticBezierSegment() { Point1 = new Point(Insideoffset + Insidewidth - 4, 6), Point2 = new Point(Insideoffset + Insidewidth - 2, 2) }; - pf.Segments.Add(seg6); - - QuadraticBezierSegment seg7 = new QuadraticBezierSegment() { Point1 = new Point(Insideoffset + Insidewidth - 1, 0), Point2 = new Point(Insideoffset + Insidewidth, 0) }; - pf.Segments.Add(seg7); - - //第三横线 - LineSegment seg8 = new LineSegment() { Point = new Point(x - 2, 0) }; - pf.Segments.Add(seg8); - - //第四竖线 - ArcSegment seg9 = new ArcSegment() { Size = new Size(2, 2), SweepDirection = SweepDirection.Clockwise, Point = new Point(x, 2) }; - pf.Segments.Add(seg9); - - LineSegment seg10 = new LineSegment() { Point = new Point(x, y - 2) }; - pf.Segments.Add(seg10); - - //第五横线 - ArcSegment seg11 = new ArcSegment() { Size = new Size(2, 2), SweepDirection = SweepDirection.Clockwise, Point = new Point(x - 2, y) }; - pf.Segments.Add(seg11); - - LineSegment seg12 = new LineSegment() { Point = new Point(Insideoffset + Insidewidth, y) }; - pf.Segments.Add(seg12); - - //第六in - QuadraticBezierSegment seg13 = new QuadraticBezierSegment() { Point1 = new Point(Insideoffset + Insidewidth - 1, y), Point2 = new Point(Insideoffset + Insidewidth - 2, y + 2) }; - pf.Segments.Add(seg13); - - QuadraticBezierSegment seg14 = new QuadraticBezierSegment() { Point1 = new Point(Insideoffset + Insidewidth - 4, y + Insideheight), Point2 = new Point(Insideoffset + Insidewidth - 5, y + Insideheight) }; - pf.Segments.Add(seg14); - - LineSegment seg15 = new LineSegment() { Point = new Point(Insideoffset + 5, y + Insideheight) }; - pf.Segments.Add(seg15); - - QuadraticBezierSegment seg16 = new QuadraticBezierSegment() { Point1 = new Point(Insideoffset + 4, y + Insideheight), Point2 = new Point(Insideoffset + 2, y + 2) }; - pf.Segments.Add(seg16); - - QuadraticBezierSegment seg17 = new QuadraticBezierSegment() { Point1 = new Point(Insideoffset + 1, y), Point2 = new Point(Insideoffset, y) }; - pf.Segments.Add(seg17); - - //第七横线 - LineSegment seg18 = new LineSegment() { Point = new Point(2, y) }; - pf.Segments.Add(seg18); - - ArcSegment seg19 = new ArcSegment() { Size = new Size(2, 2), SweepDirection = SweepDirection.Clockwise, Point = new Point(0, y - 2) }; - pf.Segments.Add(seg19); - - PathGeometry g1 = new PathGeometry(); - g1.Figures.Add(pf); - #endregion - - return g1; - } - #endregion - } -} diff --git a/Extensions/AIStudio.Wpf.Block/Controls/NextFor2BlockPanel.cs b/Extensions/AIStudio.Wpf.Block/Controls/NextFor2BlockPanel.cs deleted file mode 100644 index 988c193..0000000 --- a/Extensions/AIStudio.Wpf.Block/Controls/NextFor2BlockPanel.cs +++ /dev/null @@ -1,435 +0,0 @@ -using System; -using System.ComponentModel; -using System.Data; -using System.Runtime.InteropServices; -using System.Windows; -using System.Windows.Controls; -using System.Windows.Media; - -namespace AIStudio.Wpf.Block.Controls -{ - - public class NextFor2BlockPanel : BlockPanel - { - public NextFor2BlockPanel() - { - - } - - #region 方法重写 - private UIElement Header - { - get - { - return InternalChildren.Count >= 0 ? InternalChildren[0] : null; - } - } - - private UIElement Content1 - { - get - { - return InternalChildren.Count >= 1 ? InternalChildren[1] : null; - } - } - - private UIElement Footer1 - { - get - { - return InternalChildren.Count >= 2 ? InternalChildren[2] : null; - } - } - - private UIElement Content2 - { - get - { - return InternalChildren.Count >= 3 ? InternalChildren[3] : null; - } - } - - private UIElement Footer2 - { - get - { - return InternalChildren.Count >= 4 ? InternalChildren[4] : null; - } - } - - public double Insideheight { get; set; } = 6; - public double Insidewidth { get; set; } = 21; - public double insideoffset { get; set; } = 14; - public double Leftpanelwidth { get; set; } = 10; - public double Minwidth { get; set; } = 109; - public double Minheaderheight { get; set; } = 34; - public double Mincontentheight { get; set; } = 16; - public double Minfooterheight { get; set; } = 26; - - - private double _width; - private double _headerheight; - private double _content1height; - private double _footer1height; - private double _content2height; - private double _footer2height; - /// - /// 该方法用于测量整个控件的大小 - /// - /// - /// 控件的大小 - protected override Size MeasureOverride(Size constraint) - { - Thickness padding = this.Padding; - - _width = Minwidth; - if (Header != null) - { - //测量子控件的大小 - Header.Measure(constraint); - _width = Math.Max(Minwidth, Header.DesiredSize.Width + padding.Left + padding.Right); - _headerheight = Math.Max(Minheaderheight, Header.DesiredSize.Height + padding.Top + padding.Bottom); - } - else - { - _headerheight = Minheaderheight; - } - - if (Content1 != null) - { - //测量子控件的大小 - Content1.Measure(constraint); - _width = Math.Max(Minwidth, Content1.DesiredSize.Width + padding.Left + padding.Right + Leftpanelwidth); - _content1height = Math.Max(Mincontentheight, Content1.DesiredSize.Height + padding.Top + padding.Bottom); - } - else - { - _content1height = Mincontentheight; - } - - if (Footer1 != null) - { - //测量子控件的大小 - Footer1.Measure(constraint); - _width = Math.Max(Minwidth, Footer1.DesiredSize.Width + padding.Left + padding.Right); - _footer1height = Math.Max(Minfooterheight, Footer1.DesiredSize.Height + padding.Top + padding.Bottom); - } - else - { - _footer1height = Minfooterheight; - } - - if (Content2!= null) - { - //测量子控件的大小 - Content2.Measure(constraint); - _width = Math.Max(Minwidth, Content2.DesiredSize.Width + padding.Left + padding.Right + Leftpanelwidth); - _content2height = Math.Max(Mincontentheight, Content2.DesiredSize.Height + padding.Top + padding.Bottom); - } - else - { - _content2height = Mincontentheight; - } - - if (Footer2 != null) - { - //测量子控件的大小 - Footer2.Measure(constraint); - _width = Math.Max(Minwidth, Footer2.DesiredSize.Width + padding.Left + padding.Right); - _footer2height = Math.Max(Minfooterheight, Footer2.DesiredSize.Height + padding.Top + padding.Bottom); - } - else - { - _footer2height = Minfooterheight; - } - - return new Size(_width, _headerheight + _content1height + _footer1height + _content2height + _footer2height); - } - - /// - /// 设置子控件的大小与位置 - /// - /// - /// - protected override Size ArrangeOverride(Size arrangeSize) - { - Thickness padding = this.Padding; - - if (Header != null) - { - Header.Arrange(new Rect(new Point(padding.Left, padding.Top), new Size(_width - padding.Left - padding.Right, _headerheight - padding.Top - padding.Bottom))); - } - - - if (Content1 != null) - { - Content1.Arrange(new Rect(new Point(padding.Left + Leftpanelwidth, padding.Top + _headerheight), new Size(_width - Leftpanelwidth - padding.Left - padding.Right, _content1height - padding.Top - padding.Bottom))); - } - - - if (Footer1 != null) - { - Footer1.Arrange(new Rect(new Point(padding.Left, padding.Top + _headerheight + _content1height), new Size(_width - padding.Left - padding.Right, _footer1height - padding.Top - padding.Bottom))); - } - - if (Content2 != null) - { - Content2.Arrange(new Rect(new Point(padding.Left + Leftpanelwidth, padding.Top + _headerheight + _content1height + _footer1height), new Size(_width - Leftpanelwidth - padding.Left - padding.Right, _content2height - padding.Top - padding.Bottom))); - } - - - if (Footer2 != null) - { - Footer2.Arrange(new Rect(new Point(padding.Left, padding.Top + _headerheight + _content1height + _footer1height + _content2height), new Size(_width - padding.Left - padding.Right, _footer2height - padding.Top - padding.Bottom))); - } - - - return base.ArrangeOverride(arrangeSize); - } - - /// - /// 绘制控件 - /// - /// - protected override void OnRender(DrawingContext drawingContext) - { - Thickness padding = this.Padding; - - Pen pen = new Pen(); - pen.Brush = this.BorderBrush; - pen.Thickness = this.BorderThickness.Left;// NextForBlockBorder.RoundLayoutValue(BorderThickness.Left, DoubleUtil.DpiScaleX); - - Geometry cg = CreateGeometry(_width, _headerheight, _content1height, _footer1height, _content2height, _footer2height); - Brush brush = CreateFillBrush(); - - GuidelineSet guideLines = new GuidelineSet(); - drawingContext.PushGuidelineSet(guideLines); - drawingContext.DrawGeometry(brush, pen, cg); - - base.OnRender(drawingContext); - } - #endregion - - #region 私有方法 - private Geometry CreateGeometry(double x, double y0, double y1, double y2, double y3, double y4) - { - #region - PathFigure pf = new PathFigure(); - pf.IsClosed = true; - pf.StartPoint = new Point(0, 2); - - //第一横线 - ArcSegment seg1 = new ArcSegment() { Size = new Size(2, 2), SweepDirection = SweepDirection.Clockwise, Point = new Point(2, 0) }; - pf.Segments.Add(seg1); - - LineSegment seg2 = new LineSegment() { Point = new Point(insideoffset, 0) }; - pf.Segments.Add(seg2); - - //第二in - QuadraticBezierSegment seg3 = new QuadraticBezierSegment() { Point1 = new Point(insideoffset + 1, 0), Point2 = new Point(insideoffset + 2, 2) }; - pf.Segments.Add(seg3); - - QuadraticBezierSegment seg4 = new QuadraticBezierSegment() { Point1 = new Point(insideoffset + 4, Insideheight), Point2 = new Point(insideoffset + 5, Insideheight) }; - pf.Segments.Add(seg4); - - LineSegment seg5 = new LineSegment() { Point = new Point(insideoffset + Insidewidth - 5, Insideheight) }; - pf.Segments.Add(seg5); - - QuadraticBezierSegment seg6 = new QuadraticBezierSegment() { Point1 = new Point(insideoffset + Insidewidth - 4, Insideheight), Point2 = new Point(insideoffset + Insidewidth - 2, 2) }; - pf.Segments.Add(seg6); - - QuadraticBezierSegment seg7 = new QuadraticBezierSegment() { Point1 = new Point(insideoffset + Insidewidth - 1, 0), Point2 = new Point(insideoffset + Insidewidth, 0) }; - pf.Segments.Add(seg7); - - //第三横线 - LineSegment seg8 = new LineSegment() { Point = new Point(x - 2, 0) }; - pf.Segments.Add(seg8); - - //第四竖线 - ArcSegment seg9 = new ArcSegment() { Size = new Size(2, 2), SweepDirection = SweepDirection.Clockwise, Point = new Point(x, 2) }; - pf.Segments.Add(seg9); - - LineSegment seg10 = new LineSegment() { Point = new Point(x, y0 - 2) }; - pf.Segments.Add(seg10); - - //第五横线 - ArcSegment seg11 = new ArcSegment() { Size = new Size(2, 2), SweepDirection = SweepDirection.Clockwise, Point = new Point(x - 2, y0) }; - pf.Segments.Add(seg11); - - LineSegment seg12 = new LineSegment() { Point = new Point(Leftpanelwidth + insideoffset + Insidewidth, y0) }; - pf.Segments.Add(seg12); - - //第六in - QuadraticBezierSegment seg13 = new QuadraticBezierSegment() { Point1 = new Point(Leftpanelwidth + insideoffset + Insidewidth - 1, y0), Point2 = new Point(Leftpanelwidth + insideoffset + Insidewidth - 2, y0 + 2) }; - pf.Segments.Add(seg13); - - QuadraticBezierSegment seg14 = new QuadraticBezierSegment() { Point1 = new Point(Leftpanelwidth + insideoffset + Insidewidth - 4, y0 + Insideheight), Point2 = new Point(Leftpanelwidth + insideoffset + Insidewidth - 5, y0 + Insideheight) }; - pf.Segments.Add(seg14); - - LineSegment seg15 = new LineSegment() { Point = new Point(Leftpanelwidth + insideoffset + 5, y0 + Insideheight) }; - pf.Segments.Add(seg15); - - QuadraticBezierSegment seg16 = new QuadraticBezierSegment() { Point1 = new Point(Leftpanelwidth + insideoffset + 4, y0 + Insideheight), Point2 = new Point(Leftpanelwidth + insideoffset + 2, y0 + 2) }; - pf.Segments.Add(seg16); - - QuadraticBezierSegment seg17 = new QuadraticBezierSegment() { Point1 = new Point(Leftpanelwidth + insideoffset + 1, y0), Point2 = new Point(insideoffset, y0) }; - pf.Segments.Add(seg17); - - //第七横线 - LineSegment seg18 = new LineSegment() { Point = new Point(Leftpanelwidth + 2, y0) }; - pf.Segments.Add(seg18); - - ArcSegment seg19 = new ArcSegment() { Size = new Size(2, 2), SweepDirection = SweepDirection.Counterclockwise, Point = new Point(Leftpanelwidth, y0 + 2) }; - pf.Segments.Add(seg19); - - //第八竖线 - LineSegment seg20 = new LineSegment() { Point = new Point(Leftpanelwidth, y0 + y1 - 2) }; - pf.Segments.Add(seg20); - - ArcSegment seg21 = new ArcSegment() { Size = new Size(2, 2), SweepDirection = SweepDirection.Counterclockwise, Point = new Point(Leftpanelwidth + 2, y0 + y1) }; - pf.Segments.Add(seg21); - - //第九横线 - LineSegment seg22 = new LineSegment() { Point = new Point(Leftpanelwidth + insideoffset, y0 + y1) }; - pf.Segments.Add(seg22); - - //第十in - QuadraticBezierSegment seg23 = new QuadraticBezierSegment() { Point1 = new Point(Leftpanelwidth + insideoffset + 1, y0 + y1), Point2 = new Point(Leftpanelwidth + insideoffset + 2, y0 + y1 + 2) }; - pf.Segments.Add(seg23); - - QuadraticBezierSegment seg24 = new QuadraticBezierSegment() { Point1 = new Point(Leftpanelwidth + insideoffset + 4, y0 + y1 + Insideheight), Point2 = new Point(Leftpanelwidth + insideoffset + 5, y0 + y1 + Insideheight) }; - pf.Segments.Add(seg24); - - LineSegment seg25 = new LineSegment() { Point = new Point(Leftpanelwidth + insideoffset + Insidewidth - 5, y0 + y1 + Insideheight) }; - pf.Segments.Add(seg25); - - QuadraticBezierSegment seg26 = new QuadraticBezierSegment() { Point1 = new Point(Leftpanelwidth + insideoffset + Insidewidth - 4, y0 + y1 + Insideheight), Point2 = new Point(Leftpanelwidth + insideoffset + Insidewidth - 2, y0 + y1 + 2) }; - pf.Segments.Add(seg26); - - QuadraticBezierSegment seg27 = new QuadraticBezierSegment() { Point1 = new Point(Leftpanelwidth + insideoffset + Insidewidth - 1, y0 + y1), Point2 = new Point(Leftpanelwidth + insideoffset + Insidewidth, y0 + y1) }; - pf.Segments.Add(seg27); - - //第十一横线 - LineSegment seg28 = new LineSegment() { Point = new Point(x - 2, y0 + y1) }; - pf.Segments.Add(seg28); - - //第十二竖线 - ArcSegment seg29 = new ArcSegment() { Size = new Size(2, 2), SweepDirection = SweepDirection.Clockwise, Point = new Point(x, y0 + y1 + 2) }; - pf.Segments.Add(seg29); - - LineSegment seg30 = new LineSegment() { Point = new Point(x, y0 + y1 + y2 - 2) }; - pf.Segments.Add(seg30); - - //第十三横线 - ArcSegment seg31 = new ArcSegment() { Size = new Size(2, 2), SweepDirection = SweepDirection.Clockwise, Point = new Point(x - 2, y0 + y1 + y2) }; - pf.Segments.Add(seg31); - - - - LineSegment seg32 = new LineSegment() { Point = new Point(Leftpanelwidth + insideoffset + Insidewidth, y0 + y1 + y2) }; - pf.Segments.Add(seg32); - - //第十四in - QuadraticBezierSegment seg33 = new QuadraticBezierSegment() { Point1 = new Point(Leftpanelwidth + insideoffset + Insidewidth - 1, y0 + y1 + y2), Point2 = new Point(Leftpanelwidth + insideoffset + Insidewidth - 2, y0 + y1 + y2 + 2) }; - pf.Segments.Add(seg33); - - QuadraticBezierSegment seg34 = new QuadraticBezierSegment() { Point1 = new Point(Leftpanelwidth + insideoffset + Insidewidth - 4, y0 + y1 + y2 + Insideheight), Point2 = new Point(Leftpanelwidth + insideoffset + Insidewidth - 5, y0 + y1 + y2 + Insideheight) }; - pf.Segments.Add(seg34); - - LineSegment seg35 = new LineSegment() { Point = new Point(Leftpanelwidth + insideoffset + 5, y0 + y1 + y2 + Insideheight) }; - pf.Segments.Add(seg35); - - QuadraticBezierSegment seg36 = new QuadraticBezierSegment() { Point1 = new Point(Leftpanelwidth + insideoffset + 4, y0 + y1 + y2 + Insideheight), Point2 = new Point(Leftpanelwidth + insideoffset + 2, y0 + y1 + y2 + 2) }; - pf.Segments.Add(seg36); - - QuadraticBezierSegment seg37 = new QuadraticBezierSegment() { Point1 = new Point(Leftpanelwidth + insideoffset + 1, y0 + y1 + y2), Point2 = new Point(Leftpanelwidth + insideoffset, y0 + y1 + y2) }; - pf.Segments.Add(seg37); - - //第十五横线 - LineSegment seg38 = new LineSegment() { Point = new Point(Leftpanelwidth + 2, y0 + y1 + y2) }; - pf.Segments.Add(seg38); - - ArcSegment seg39 = new ArcSegment() { Size = new Size(2, 2), SweepDirection = SweepDirection.Counterclockwise, Point = new Point(Leftpanelwidth, y0 + y1 + y2 + 2) }; - pf.Segments.Add(seg39); - - //第十六竖向 - LineSegment seg40 = new LineSegment() { Point = new Point(Leftpanelwidth, y0 + y1 + y2 + y3 - 2) }; - pf.Segments.Add(seg40); - - ArcSegment seg41 = new ArcSegment() { Size = new Size(2, 2), SweepDirection = SweepDirection.Counterclockwise, Point = new Point(Leftpanelwidth + 2, y0 + y1 + y2 + y3) }; - pf.Segments.Add(seg41); - - //第十七横线 - LineSegment seg42 = new LineSegment() { Point = new Point(Leftpanelwidth + insideoffset, y0 + y1 + y2 + y3) }; - pf.Segments.Add(seg42); - - //第十八in - QuadraticBezierSegment seg43 = new QuadraticBezierSegment() { Point1 = new Point(Leftpanelwidth + insideoffset + 1, y0 + y1 + y2 + y3), Point2 = new Point(Leftpanelwidth + insideoffset + 2, y0 + y1 + y2 + y3 + 2) }; - pf.Segments.Add(seg43); - - QuadraticBezierSegment seg44 = new QuadraticBezierSegment() { Point1 = new Point(Leftpanelwidth + insideoffset + 4, y0 + y1 + y2 + y3 + Insideheight), Point2 = new Point(Leftpanelwidth + insideoffset + 5, y0 + y1 + y2 + y3 + Insideheight) }; - pf.Segments.Add(seg44); - - LineSegment seg45 = new LineSegment() { Point = new Point(Leftpanelwidth + insideoffset + Insidewidth - 5, y0 + y1 + y2 + y3 + Insideheight) }; - pf.Segments.Add(seg45); - - QuadraticBezierSegment seg46 = new QuadraticBezierSegment() { Point1 = new Point(Leftpanelwidth + insideoffset + Insidewidth - 4, y0 + y1 + y2 + y3 + Insideheight), Point2 = new Point(Leftpanelwidth + insideoffset + Insidewidth - 2, y0 + y1 + y2 + y3 + 2) }; - pf.Segments.Add(seg46); - - QuadraticBezierSegment seg47 = new QuadraticBezierSegment() { Point1 = new Point(Leftpanelwidth + insideoffset + Insidewidth - 1, y0 + y1 + y2 + y3), Point2 = new Point(Leftpanelwidth + insideoffset + Insidewidth, y0 + y1 + y2 + y3) }; - pf.Segments.Add(seg47); - - //第十一横线 - LineSegment seg48 = new LineSegment() { Point = new Point(x - 2, y0 + y1 + y2 + y3) }; - pf.Segments.Add(seg48); - - //第十二竖线 - ArcSegment seg49 = new ArcSegment() { Size = new Size(2, 2), SweepDirection = SweepDirection.Clockwise, Point = new Point(x, y0 + y1 + y2 + y3 + 2) }; - pf.Segments.Add(seg49); - - LineSegment seg50 = new LineSegment() { Point = new Point(x, y0 + y1 + y2 + y3 + y4 - 2) }; - pf.Segments.Add(seg50); - - //第十三横线 - ArcSegment seg51 = new ArcSegment() { Size = new Size(2, 2), SweepDirection = SweepDirection.Clockwise, Point = new Point(x - 2, y0 + y1 + y2 + y3 + y4) }; - pf.Segments.Add(seg51); - - - - LineSegment seg52 = new LineSegment() { Point = new Point(insideoffset + Insidewidth, y0 + y1 + y2 + y3 + y4) }; - pf.Segments.Add(seg52); - - //第十四in - QuadraticBezierSegment seg53 = new QuadraticBezierSegment() { Point1 = new Point(insideoffset + Insidewidth - 1, y0 + y1 + y2 + y3 + y4), Point2 = new Point(insideoffset + Insidewidth - 2, y0 + y1 + y2 + y3 + y4 + 2) }; - pf.Segments.Add(seg53); - - QuadraticBezierSegment seg54 = new QuadraticBezierSegment() { Point1 = new Point(insideoffset + Insidewidth - 4, y0 + y1 + y2 + y3 + y4 + Insideheight), Point2 = new Point(insideoffset + Insidewidth - 5, y0 + y1 + y2 + y3 + y4 + Insideheight) }; - pf.Segments.Add(seg54); - - LineSegment seg55 = new LineSegment() { Point = new Point(insideoffset + 5, y0 + y1 + y2 + y3 + y4 + Insideheight) }; - pf.Segments.Add(seg55); - - QuadraticBezierSegment seg56 = new QuadraticBezierSegment() { Point1 = new Point(insideoffset + 4, y0 + y1 + y2 + y3 + y4 + Insideheight), Point2 = new Point(insideoffset + 2, y0 + y1 + y2 + y3 + y4 + 2) }; - pf.Segments.Add(seg56); - - QuadraticBezierSegment seg57 = new QuadraticBezierSegment() { Point1 = new Point(insideoffset + 1, y0 + y1 + y2 + y3 + y4), Point2 = new Point(insideoffset, y0 + y1 + y2 + y3 + y4) }; - pf.Segments.Add(seg57); - - //第十五横线 - LineSegment seg58 = new LineSegment() { Point = new Point(2, y0 + y1 + y2 + y3 + y4) }; - pf.Segments.Add(seg58); - - ArcSegment seg59 = new ArcSegment() { Size = new Size(2, 2), SweepDirection = SweepDirection.Counterclockwise, Point = new Point(0, y0 + y1 + y2 + y3 + y4 - 2) }; - pf.Segments.Add(seg59); - - - PathGeometry g1 = new PathGeometry(); - g1.Figures.Add(pf); - #endregion - - return g1; - } - - #endregion - } -} diff --git a/Extensions/AIStudio.Wpf.Block/Controls/NextForBlockPanel.cs b/Extensions/AIStudio.Wpf.Block/Controls/NextForBlockPanel.cs deleted file mode 100644 index 5880309..0000000 --- a/Extensions/AIStudio.Wpf.Block/Controls/NextForBlockPanel.cs +++ /dev/null @@ -1,309 +0,0 @@ -using System; -using System.ComponentModel; -using System.Data; -using System.Runtime.InteropServices; -using System.Windows; -using System.Windows.Controls; -using System.Windows.Media; - -namespace AIStudio.Wpf.Block.Controls -{ - - public class NextForBlockPanel : BlockPanel - { - public NextForBlockPanel() - { - - } - - #region 方法重写 - private UIElement Header - { - get - { - return InternalChildren.Count >= 0 ? InternalChildren[0] : null; - } - } - - private UIElement Content - { - get - { - return InternalChildren.Count >= 1 ? InternalChildren[1] : null; - } - } - - private UIElement Footer - { - get - { - return InternalChildren.Count >= 2 ? InternalChildren[2] : null; - } - } - - public double Insideheight { get; set; } = 6; - public double Insidewidth { get; set; } = 21; - public double Insideoffset { get; set; } = 14; - public double Leftpanelwidth { get; set; } = 10; - public double Minwidth { get; set; } = 109; - public double Minheaderheight { get; set; } = 34; - public double Mincontentheight { get; set; } = 16; - public double Minfooterheight { get; set; } = 26; - - - private double _width; - private double _headerheight; - private double _contentheight; - private double _footerheight; - /// - /// 该方法用于测量整个控件的大小 - /// - /// - /// 控件的大小 - protected override Size MeasureOverride(Size constraint) - { - Thickness padding = this.Padding; - - _width = Minwidth; - if (Header != null) - { - //测量子控件的大小 - Header.Measure(constraint); - _width = Math.Max(Minwidth, Header.DesiredSize.Width + padding.Left + padding.Right); - _headerheight = Math.Max(Minheaderheight, Header.DesiredSize.Height + padding.Top + padding.Bottom); - } - else - { - _headerheight = Minheaderheight; - } - - if (Content != null) - { - //测量子控件的大小 - Content.Measure(constraint); - _width = Math.Max(Minwidth, Content.DesiredSize.Width + padding.Left + padding.Right + Leftpanelwidth); - _contentheight = Math.Max(Mincontentheight, Content.DesiredSize.Height + padding.Top + padding.Bottom); - } - else - { - _contentheight = Mincontentheight; - } - - if (Footer != null) - { - //测量子控件的大小 - Footer.Measure(constraint); - _width = Math.Max(Minwidth, Footer.DesiredSize.Width + padding.Left + padding.Right); - _footerheight = Math.Max(Minfooterheight, Footer.DesiredSize.Height + padding.Top + padding.Bottom); - } - else - { - _footerheight = Minfooterheight; - } - - return new Size(_width, _headerheight + _contentheight + _footerheight); - } - - /// - /// 设置子控件的大小与位置 - /// - /// - /// - protected override Size ArrangeOverride(Size arrangeSize) - { - Thickness padding = this.Padding; - - if (Header != null) - { - Header.Arrange(new Rect(new Point(padding.Left, padding.Top), new Size(_width - padding.Left - padding.Right, _headerheight - padding.Top - padding.Bottom))); - } - - - if (Content != null) - { - Content.Arrange(new Rect(new Point(padding.Left + Leftpanelwidth, padding.Top + _headerheight), new Size(_width - Leftpanelwidth - padding.Left - padding.Right, _contentheight - padding.Top - padding.Bottom))); - } - - - if (Footer != null) - { - Footer.Arrange(new Rect(new Point(padding.Left, padding.Top + _headerheight + _contentheight), new Size(_width - padding.Left - padding.Right, _footerheight - padding.Top - padding.Bottom))); - } - - - return base.ArrangeOverride(arrangeSize); - } - - /// - /// 绘制控件 - /// - /// - protected override void OnRender(DrawingContext drawingContext) - { - Thickness padding = this.Padding; - - Pen pen = new Pen(); - pen.Brush = this.BorderBrush; - pen.Thickness = this.BorderThickness.Left;// NextForBlockBorder.RoundLayoutValue(BorderThickness.Left, DoubleUtil.DpiScaleX); - - Geometry cg = CreateGeometry(_width, _headerheight, _contentheight, _footerheight); - Brush brush = CreateFillBrush(); - - GuidelineSet guideLines = new GuidelineSet(); - drawingContext.PushGuidelineSet(guideLines); - drawingContext.DrawGeometry(brush, pen, cg); - - base.OnRender(drawingContext); - } - #endregion - - #region 私有方法 - private Geometry CreateGeometry(double x, double y0, double y1, double y2) - { - #region - PathFigure pf = new PathFigure(); - pf.IsClosed = true; - pf.StartPoint = new Point(0, 2); - - //第一横线 - ArcSegment seg1 = new ArcSegment() { Size = new Size(2, 2), SweepDirection = SweepDirection.Clockwise, Point = new Point(2, 0) }; - pf.Segments.Add(seg1); - - LineSegment seg2 = new LineSegment() { Point = new Point(Insideoffset, 0) }; - pf.Segments.Add(seg2); - - //第二in - QuadraticBezierSegment seg3 = new QuadraticBezierSegment() { Point1 = new Point(Insideoffset + 1, 0), Point2 = new Point(Insideoffset + 2, 2) }; - pf.Segments.Add(seg3); - - QuadraticBezierSegment seg4 = new QuadraticBezierSegment() { Point1 = new Point(Insideoffset + 4, Insideheight), Point2 = new Point(Insideoffset + 5, Insideheight) }; - pf.Segments.Add(seg4); - - LineSegment seg5 = new LineSegment() { Point = new Point(Insideoffset + Insidewidth - 5, Insideheight) }; - pf.Segments.Add(seg5); - - QuadraticBezierSegment seg6 = new QuadraticBezierSegment() { Point1 = new Point(Insideoffset + Insidewidth - 4, Insideheight), Point2 = new Point(Insideoffset + Insidewidth - 2, 2) }; - pf.Segments.Add(seg6); - - QuadraticBezierSegment seg7 = new QuadraticBezierSegment() { Point1 = new Point(Insideoffset + Insidewidth - 1, 0), Point2 = new Point(Insideoffset + Insidewidth, 0) }; - pf.Segments.Add(seg7); - - //第三横线 - LineSegment seg8 = new LineSegment() { Point = new Point(x - 2, 0) }; - pf.Segments.Add(seg8); - - //第四竖线 - ArcSegment seg9 = new ArcSegment() { Size = new Size(2, 2), SweepDirection = SweepDirection.Clockwise, Point = new Point(x, 2) }; - pf.Segments.Add(seg9); - - LineSegment seg10 = new LineSegment() { Point = new Point(x, y0 - 2) }; - pf.Segments.Add(seg10); - - //第五横线 - ArcSegment seg11 = new ArcSegment() { Size = new Size(2, 2), SweepDirection = SweepDirection.Clockwise, Point = new Point(x - 2, y0) }; - pf.Segments.Add(seg11); - - LineSegment seg12 = new LineSegment() { Point = new Point(Leftpanelwidth + Insideoffset + Insidewidth, y0) }; - pf.Segments.Add(seg12); - - //第六in - QuadraticBezierSegment seg13 = new QuadraticBezierSegment() { Point1 = new Point(Leftpanelwidth + Insideoffset + Insidewidth - 1, y0), Point2 = new Point(Leftpanelwidth + Insideoffset + Insidewidth - 2, y0 + 2) }; - pf.Segments.Add(seg13); - - QuadraticBezierSegment seg14 = new QuadraticBezierSegment() { Point1 = new Point(Leftpanelwidth + Insideoffset + Insidewidth - 4, y0 + Insideheight), Point2 = new Point(Leftpanelwidth + Insideoffset + Insidewidth - 5, y0 + Insideheight) }; - pf.Segments.Add(seg14); - - LineSegment seg15 = new LineSegment() { Point = new Point(Leftpanelwidth + Insideoffset + 5, y0 + Insideheight) }; - pf.Segments.Add(seg15); - - QuadraticBezierSegment seg16 = new QuadraticBezierSegment() { Point1 = new Point(Leftpanelwidth + Insideoffset + 4, y0 + Insideheight), Point2 = new Point(Leftpanelwidth + Insideoffset + 2, y0 + 2) }; - pf.Segments.Add(seg16); - - QuadraticBezierSegment seg17 = new QuadraticBezierSegment() { Point1 = new Point(Leftpanelwidth + Insideoffset + 1, y0), Point2 = new Point(Insideoffset, y0) }; - pf.Segments.Add(seg17); - - //第七横线 - LineSegment seg18 = new LineSegment() { Point = new Point(Leftpanelwidth + 2, y0) }; - pf.Segments.Add(seg18); - - ArcSegment seg19 = new ArcSegment() { Size = new Size(2, 2), SweepDirection = SweepDirection.Counterclockwise, Point = new Point(Leftpanelwidth, y0 + 2) }; - pf.Segments.Add(seg19); - - //第八竖线 - LineSegment seg20 = new LineSegment() { Point = new Point(Leftpanelwidth, y0 + y1 - 2) }; - pf.Segments.Add(seg20); - - ArcSegment seg21 = new ArcSegment() { Size = new Size(2, 2), SweepDirection = SweepDirection.Counterclockwise, Point = new Point(Leftpanelwidth + 2, y0 + y1) }; - pf.Segments.Add(seg21); - - //第九横线 - LineSegment seg22 = new LineSegment() { Point = new Point(Leftpanelwidth + Insideoffset, y0 + y1) }; - pf.Segments.Add(seg22); - - //第十in - QuadraticBezierSegment seg23 = new QuadraticBezierSegment() { Point1 = new Point(Leftpanelwidth + Insideoffset + 1, y0 + y1), Point2 = new Point(Leftpanelwidth + Insideoffset + 2, y0 + y1 + 2) }; - pf.Segments.Add(seg23); - - QuadraticBezierSegment seg24 = new QuadraticBezierSegment() { Point1 = new Point(Leftpanelwidth + Insideoffset + 4, y0 + y1 + Insideheight), Point2 = new Point(Leftpanelwidth + Insideoffset + 5, y0 + y1 + Insideheight) }; - pf.Segments.Add(seg24); - - LineSegment seg25 = new LineSegment() { Point = new Point(Leftpanelwidth + Insideoffset + Insidewidth - 5, y0 + y1 + Insideheight) }; - pf.Segments.Add(seg25); - - QuadraticBezierSegment seg26 = new QuadraticBezierSegment() { Point1 = new Point(Leftpanelwidth + Insideoffset + Insidewidth - 4, y0 + y1 + Insideheight), Point2 = new Point(Leftpanelwidth + Insideoffset + Insidewidth - 2, y0 + y1 + 2) }; - pf.Segments.Add(seg26); - - QuadraticBezierSegment seg27 = new QuadraticBezierSegment() { Point1 = new Point(Leftpanelwidth + Insideoffset + Insidewidth - 1, y0 + y1), Point2 = new Point(Leftpanelwidth + Insideoffset + Insidewidth, y0 + y1) }; - pf.Segments.Add(seg27); - - //第十一横线 - LineSegment seg28 = new LineSegment() { Point = new Point(x - 2, y0 + y1) }; - pf.Segments.Add(seg28); - - //第十二竖线 - ArcSegment seg29 = new ArcSegment() { Size = new Size(2, 2), SweepDirection = SweepDirection.Clockwise, Point = new Point(x, y0 + y1 + 2) }; - pf.Segments.Add(seg29); - - LineSegment seg30 = new LineSegment() { Point = new Point(x, y0 + y1 + y2 - 2) }; - pf.Segments.Add(seg30); - - //第十三横线 - ArcSegment seg31 = new ArcSegment() { Size = new Size(2, 2), SweepDirection = SweepDirection.Clockwise, Point = new Point(x - 2, y0 + y1 + y2) }; - pf.Segments.Add(seg31); - - LineSegment seg32 = new LineSegment() { Point = new Point(Insideoffset + Insidewidth, y0 + y1 + y2) }; - pf.Segments.Add(seg32); - - //第十四in - QuadraticBezierSegment seg33 = new QuadraticBezierSegment() { Point1 = new Point(Insideoffset + Insidewidth - 1, y0 + y1 + y2), Point2 = new Point(Insideoffset + Insidewidth - 2, y0 + y1 + y2 + 2) }; - pf.Segments.Add(seg33); - - QuadraticBezierSegment seg34 = new QuadraticBezierSegment() { Point1 = new Point(Insideoffset + Insidewidth - 4, y0 + y1 + y2 + Insideheight), Point2 = new Point(Insideoffset + Insidewidth - 5, y0 + y1 + y2 + Insideheight) }; - pf.Segments.Add(seg34); - - LineSegment seg35 = new LineSegment() { Point = new Point(Insideoffset + 5, y0 + y1 + y2 + Insideheight) }; - pf.Segments.Add(seg35); - - QuadraticBezierSegment seg36 = new QuadraticBezierSegment() { Point1 = new Point(Insideoffset + 4, y0 + y1 + y2 + Insideheight), Point2 = new Point(Insideoffset + 2, y0 + y1 + y2 + 2) }; - pf.Segments.Add(seg36); - - QuadraticBezierSegment seg37 = new QuadraticBezierSegment() { Point1 = new Point(Insideoffset + 1, y0 + y1 + y2), Point2 = new Point(Insideoffset, y0 + y1 + y2) }; - pf.Segments.Add(seg37); - - //第十五横线 - LineSegment seg38 = new LineSegment() { Point = new Point(2, y0 + y1 + y2) }; - pf.Segments.Add(seg38); - - ArcSegment seg39 = new ArcSegment() { Size = new Size(2, 2), SweepDirection = SweepDirection.Clockwise, Point = new Point(0, y0 + y1 + y2 - 2) }; - pf.Segments.Add(seg39); - - PathGeometry g1 = new PathGeometry(); - g1.Figures.Add(pf); - #endregion - - return g1; - } - - #endregion - } -} diff --git a/Extensions/AIStudio.Wpf.Block/Controls/OperationBlockBorder.cs b/Extensions/AIStudio.Wpf.Block/Controls/OperationBlockBorder.cs deleted file mode 100644 index 723afb1..0000000 --- a/Extensions/AIStudio.Wpf.Block/Controls/OperationBlockBorder.cs +++ /dev/null @@ -1,114 +0,0 @@ -using System; -using System.Windows; -using System.Windows.Media; - -namespace AIStudio.Wpf.Block.Controls -{ - public class OperationBlockBorder : BlockDecorator - { - public OperationBlockBorder() - { - - } - - #region 方法重写 - public double Minwidth { get; set; } = 100; - public double Minheight { get; set; } = 30; - - /// - /// 该方法用于测量整个控件的大小 - /// - /// - /// 控件的大小 - protected override Size MeasureOverride(Size constraint) - { - Thickness padding = this.Padding; - - Size result = new Size(); - if (Child != null) - { - //测量子控件的大小 - Child.Measure(constraint); - - result.Width = Math.Max(Minwidth, Child.DesiredSize.Width + padding.Left + padding.Right); - result.Height = Math.Max(Minheight, Child.DesiredSize.Height + padding.Top + padding.Bottom); - } - else - { - result.Width = Minwidth; - result.Height = Minheight; - } - return result; - } - - /// - /// 设置子控件的大小与位置 - /// - /// - /// - protected override Size ArrangeOverride(Size arrangeSize) - { - Thickness padding = this.Padding; - if (Child != null) - { - Child.Arrange(new Rect(new Point(padding.Left, padding.Top), - new Size(Math.Max(Minwidth - padding.Left - padding.Right, Child.DesiredSize.Width), Math.Max(Minheight - padding.Top - padding.Bottom, Child.DesiredSize.Height)))); - } - return arrangeSize; - } - - /// - /// 绘制控件 - /// - /// - protected override void OnRender(DrawingContext drawingContext) - { - Thickness padding = this.Padding; - - Pen pen = new Pen(); - pen.Brush = this.BorderBrush; - pen.Thickness = this.BorderThickness.Left;// NextForBlockBorder.RoundLayoutValue(BorderThickness.Left, DoubleUtil.DpiScaleX); - - Geometry cg = CreateGeometry(Math.Max(Minwidth, Child?.DesiredSize.Width ?? 0 + padding.Left + padding.Right), Math.Max(Minheight, Child?.DesiredSize.Height ?? 0 + padding.Top + padding.Bottom)); - Brush brush = CreateFillBrush(); - - GuidelineSet guideLines = new GuidelineSet(); - drawingContext.PushGuidelineSet(guideLines); - drawingContext.DrawGeometry(brush, pen, cg); - } - #endregion - - #region 私有方法 - //按Element的大小计算 - private Geometry CreateGeometry(double x, double y) - { - #region - PathFigure pf = new PathFigure(); - pf.IsClosed = true; - pf.StartPoint = new Point(0, y/ 2 + 1); - - - LineSegment seg1 = new LineSegment() { Point = new Point(y / 2 + 1, 0) }; - pf.Segments.Add(seg1); - - LineSegment seg2 = new LineSegment() { Point = new Point(x - y / 2 - 1, 0) }; - pf.Segments.Add(seg2); - - LineSegment seg3 = new LineSegment() { Point = new Point(x, y / 2) }; - pf.Segments.Add(seg3); - - LineSegment seg4 = new LineSegment() { Point = new Point(x - y / 2 - 1, y) }; - pf.Segments.Add(seg4); - - LineSegment seg5 = new LineSegment() { Point = new Point(y / 2 + 1, y) }; - pf.Segments.Add(seg5); - - PathGeometry g1 = new PathGeometry(); - g1.Figures.Add(pf); - #endregion - - return g1; - } - #endregion - } -} diff --git a/Extensions/AIStudio.Wpf.Block/Controls/StartBlockBorder.cs b/Extensions/AIStudio.Wpf.Block/Controls/StartBlockBorder.cs deleted file mode 100644 index 393646e..0000000 --- a/Extensions/AIStudio.Wpf.Block/Controls/StartBlockBorder.cs +++ /dev/null @@ -1,147 +0,0 @@ -using System; -using System.Windows; -using System.Windows.Media; - -namespace AIStudio.Wpf.Block.Controls -{ - public class StartBlockBorder : BlockDecorator - { - public StartBlockBorder() - { - - } - - #region 方法重写 - public double Outsideheight { get; set; } = 13; - public double Outsidewidth { get; set; } = 70; - public double Insideheight { get; set; } = 6; - public double Insidewidth { get; set; } = 21; - public double Insideoffset { get; set; } = 14; - public double Minwidth { get; set; } = 86; - public double Minheight { get; set; } = 47; - - /// - /// 该方法用于测量整个控件的大小 - /// - /// - /// 控件的大小 - protected override Size MeasureOverride(Size constraint) - { - Thickness padding = this.Padding; - - Size result = new Size(); - if (Child != null) - { - //测量子控件的大小 - Child.Measure(constraint); - - result.Width = Math.Max(Minwidth, Child.DesiredSize.Width + padding.Left + padding.Right); - result.Height = Math.Max(Minheight, Child.DesiredSize.Height + padding.Top + padding.Bottom + Outsideheight); - } - else - { - result.Width = Minwidth; - result.Height = Minheight; - } - return result; - } - - /// - /// 设置子控件的大小与位置 - /// - /// - /// - protected override Size ArrangeOverride(Size arrangeSize) - { - Thickness padding = this.Padding; - if (Child != null) - { - Child.Arrange(new Rect(new Point(padding.Left, Outsideheight + padding.Top), - new Size(Math.Max(Minwidth - padding.Left - padding.Right, Child.DesiredSize.Width), Math.Max(Minheight - Outsideheight - padding.Top - padding.Bottom, Child.DesiredSize.Height )))); - } - return arrangeSize; - } - - /// - /// 绘制控件 - /// - /// - protected override void OnRender(DrawingContext drawingContext) - { - Thickness padding = this.Padding; - - Pen pen = new Pen(); - pen.Brush = this.BorderBrush; - pen.Thickness = this.BorderThickness.Left;// NextForBlockBorder.RoundLayoutValue(BorderThickness.Left, DoubleUtil.DpiScaleX); - - Geometry cg = CreateGeometry(Math.Max(Minwidth, Child?.DesiredSize.Width ?? 0 + padding.Left + padding.Right), Math.Max(Minheight - Outsideheight, Child?.DesiredSize.Height ?? 0 + padding.Top + padding.Bottom)); - Brush brush = CreateFillBrush(); - - GuidelineSet guideLines = new GuidelineSet(); - drawingContext.PushGuidelineSet(guideLines); - drawingContext.DrawGeometry(brush, pen, cg); - } - #endregion - - #region 私有方法 - //按Element的大小计算 - private Geometry CreateGeometry(double x, double y) - { - #region - PathFigure pf = new PathFigure(); - pf.IsClosed = true; - pf.StartPoint = new Point(0, Outsideheight); - - //第一横线 - QuadraticBezierSegment seg1 = new QuadraticBezierSegment() { Point1 = new Point(Outsidewidth / 2, 3 - Outsideheight), Point2 = new Point(Outsidewidth, Outsideheight) }; - pf.Segments.Add(seg1); - - LineSegment seg2 = new LineSegment() { Point = new Point(x - 2, Outsideheight) }; - pf.Segments.Add(seg2); - - //第二竖线 - ArcSegment seg3 = new ArcSegment() { Size = new Size(2, 2), SweepDirection = SweepDirection.Clockwise, Point = new Point(x, Outsideheight + 2) }; - pf.Segments.Add(seg3); - - LineSegment seg4 = new LineSegment() { Point = new Point(x, Outsideheight + y - 2) }; - pf.Segments.Add(seg4); - - //第三横线 - ArcSegment seg5 = new ArcSegment() { Size = new Size(2, 2), SweepDirection = SweepDirection.Clockwise, Point = new Point(x - 2, Outsideheight + y) }; - pf.Segments.Add(seg5); - - LineSegment seg6 = new LineSegment() { Point = new Point(Insideoffset + Insidewidth, Outsideheight + y) }; - pf.Segments.Add(seg6); - - //第四in - QuadraticBezierSegment seg7 = new QuadraticBezierSegment() { Point1 = new Point(Insideoffset + Insidewidth - 1, Outsideheight + y), Point2 = new Point(Insideoffset + Insidewidth - 2, Outsideheight + y + 2) }; - pf.Segments.Add(seg7); - - QuadraticBezierSegment seg8 = new QuadraticBezierSegment() { Point1 = new Point(Insideoffset + Insidewidth - 4, Outsideheight + y + Insideheight), Point2 = new Point(Insideoffset + Insidewidth - 5, Outsideheight + y + Insideheight) }; - pf.Segments.Add(seg8); - - LineSegment seg9 = new LineSegment() { Point = new Point(Insideoffset + 5, Outsideheight + y + Insideheight) }; - pf.Segments.Add(seg9); - - QuadraticBezierSegment seg10 = new QuadraticBezierSegment() { Point1 = new Point(Insideoffset + 4, Outsideheight + y + Insideheight), Point2 = new Point(Insideoffset + 2, Outsideheight + y + 2) }; - pf.Segments.Add(seg10); - - QuadraticBezierSegment seg11 = new QuadraticBezierSegment() { Point1 = new Point(Insideoffset + 1, Outsideheight + y), Point2 = new Point(Insideoffset, Outsideheight + y) }; - pf.Segments.Add(seg11); - - //第五横线 - LineSegment seg12 = new LineSegment() { Point = new Point(2, Outsideheight + y) }; - pf.Segments.Add(seg12); - - ArcSegment seg13 = new ArcSegment() { Size = new Size(2, 2), SweepDirection = SweepDirection.Clockwise, Point = new Point(0, Outsideheight + y - 2) }; - pf.Segments.Add(seg13); - - PathGeometry g1 = new PathGeometry(); - g1.Figures.Add(pf); - #endregion - - return g1; - } - #endregion - } -} diff --git a/Extensions/AIStudio.Wpf.Block/Controls/VariableBlockBorder.cs b/Extensions/AIStudio.Wpf.Block/Controls/VariableBlockBorder.cs deleted file mode 100644 index c4b6d2f..0000000 --- a/Extensions/AIStudio.Wpf.Block/Controls/VariableBlockBorder.cs +++ /dev/null @@ -1,114 +0,0 @@ -using System; -using System.Windows; -using System.Windows.Input; -using System.Windows.Media; - -namespace AIStudio.Wpf.Block.Controls -{ - public class VariableBlockBorder : BlockDecorator - { - public VariableBlockBorder() - { - - } - - #region 方法重写 - public double Minwidth { get; set; } = 64; - public double Minheight { get; set; } = 28; - - /// - /// 该方法用于测量整个控件的大小 - /// - /// - /// 控件的大小 - protected override Size MeasureOverride(Size constraint) - { - Thickness padding = this.Padding; - - Size result = new Size(); - if (Child != null) - { - //测量子控件的大小 - Child.Measure(constraint); - - result.Width = Math.Max(Minwidth, Child.DesiredSize.Width + padding.Left + padding.Right); - result.Height = Math.Max(Minheight, Child.DesiredSize.Height + padding.Top + padding.Bottom); - } - else - { - result.Width = Minwidth; - result.Height = Minheight; - } - return result; - } - - /// - /// 设置子控件的大小与位置 - /// - /// - /// - protected override Size ArrangeOverride(Size arrangeSize) - { - Thickness padding = this.Padding; - if (Child != null) - { - Child.Arrange(new Rect(new Point(padding.Left, padding.Top), - new Size(Math.Max(Minwidth - padding.Left - padding.Right, Child.DesiredSize.Width), Math.Max(Minheight - padding.Top - padding.Bottom, Child.DesiredSize.Height)))); - } - return arrangeSize; - } - - /// - /// 绘制控件 - /// - /// - protected override void OnRender(DrawingContext drawingContext) - { - Thickness padding = this.Padding; - - Pen pen = new Pen(); - pen.Brush = this.BorderBrush; - pen.Thickness = this.BorderThickness.Left;// NextForBlockBorder.RoundLayoutValue(BorderThickness.Left, DoubleUtil.DpiScaleX); - - Geometry cg = CreateGeometry(Math.Max(Minwidth, Child?.DesiredSize.Width ?? 0 + padding.Left + padding.Right), Math.Max(Minheight, Child?.DesiredSize.Height ?? 0 + padding.Top + padding.Bottom)); - Brush brush = CreateFillBrush(); - - GuidelineSet guideLines = new GuidelineSet(); - drawingContext.PushGuidelineSet(guideLines); - drawingContext.DrawGeometry(brush, pen, cg); - } - #endregion - - #region 私有方法 - //按Element的大小计算 - private Geometry CreateGeometry(double x, double y) - { - #region - PathFigure pf = new PathFigure(); - pf.IsClosed = true; - pf.StartPoint = new Point(y / 2, 0); - - - LineSegment seg1 = new LineSegment() { Point = new Point(x - y / 2, 0) }; - pf.Segments.Add(seg1); - - ArcSegment seg2= new ArcSegment() { Size = new Size(y / 2, y / 2), SweepDirection = SweepDirection.Clockwise, Point = new Point(x - y / 2, y) }; - pf.Segments.Add(seg2); - - LineSegment seg3 = new LineSegment() { Point = new Point(y / 2, y) }; - pf.Segments.Add(seg3); - - ArcSegment seg4 = new ArcSegment() { Size = new Size(y / 2, y / 2), SweepDirection = SweepDirection.Clockwise, Point = new Point(y / 2, 0) }; - pf.Segments.Add(seg4); - - PathGeometry g1 = new PathGeometry(); - g1.Figures.Add(pf); - #endregion - - return g1; - } - #endregion - - - } -} diff --git a/Extensions/AIStudio.Wpf.Block/Models/BlockType.cs b/Extensions/AIStudio.Wpf.Block/Models/BlockType.cs deleted file mode 100644 index 617cf47..0000000 --- a/Extensions/AIStudio.Wpf.Block/Models/BlockType.cs +++ /dev/null @@ -1,138 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace AIStudio.Wpf.Block.Models -{ - public enum BlockType - { - //运动 - [Description("移动")] - Move, - [Description("右转")] - TurnRight, - [Description("左转")] - TurnLeft, - [Description("移到")] - MoveTo, - [Description("移到坐标")] - MoveToPoint, - [Description("在几s内移到")] - TimeMoveTo, - [Description("在几s内移到坐标")] - TimeMoveToPoint, - [Description("面向方向")] - FaceTo, - [Description("面向鼠标")] - FaceToMouse, - [Description("将X坐标增加")] - PointXAdd, - [Description("将X坐标设为")] - PointXSet, - [Description("将Y坐标增加")] - PointYAdd, - [Description("将Y坐标设为")] - PointYSet, - [Description("碰到边缘就反弹")] - BorderBounce, - [Description("旋转方式")] - RotationMethod, - [Description("X坐标")] - PointX, - [Description("Y坐标")] - PointY, - [Description("方向")] - Direction, - //外观 - //声音 - //事件 - [Description("当开始被点击")] - Start, - [Description("当键盘按下")] - KeyboardPress, - [Description("当角色被点击")] - WhenRoleClicked, - [Description("当背景切换")] - WhenBackgroundSwitch, - [Description("当大于")] - WhenGreaterThan, - [Description("当接收到")] - WhenReceivedMessage, - [Description("广播消息")] - BroadcastMessage, - [Description("广播消息并等待")] - BroadcastMessageAndWaiting, - [Description("等待1s")] - WaitTime, - [Description("循环执行")] - For, - [Description("一直执行")] - Always, - [Description("如果")] - If, - [Description("如果否则")] - IfElse, - [Description("等待条件")] - Wait, - [Description("重复执行直到")] - While, - [Description("停止")] - Stop, - [Description("克隆")] - Clone, - [Description("删除此克隆体")] - DeleteThisClone, - //侦测 - //运算 - [Description("加")] - Add, - [Description("减")] - Subtract, - [Description("乘")] - Multiply, - [Description("除")] - Division, - [Description("除")] - Random, - [Description("大于")] - GreaterThan, - [Description("小于")] - LessThan, - [Description("等于")] - EqualThan, - [Description("与")] - And, - [Description("或")] - Or, - [Description("不成立")] - Not, - [Description("字符串连接")] - StringAdd, - [Description("第几个字符")] - StringIndex, - [Description("字符数")] - StringLength, - [Description("包含")] - StringContain, - [Description("余数")] - Mod, - [Description("四舍五入")] - Round, - [Description("绝对值")] - Abs, - //变量 - [Description("变量")] - Variable, - [Description("设为")] - SetValue, - [Description("增加")] - Increase, - [Description("显示变量")] - VariableVisable, - [Description("隐藏变量")] - VariableHidden, - } -} diff --git a/Extensions/AIStudio.Wpf.Block/Models/ConstParameter.cs b/Extensions/AIStudio.Wpf.Block/Models/ConstParameter.cs deleted file mode 100644 index 440d0dd..0000000 --- a/Extensions/AIStudio.Wpf.Block/Models/ConstParameter.cs +++ /dev/null @@ -1,16 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace AIStudio.Wpf.Block.Models -{ - public class ConstParameter : IParameter - { - public double? Value - { - get;set; - } - } -} diff --git a/Extensions/AIStudio.Wpf.Block/Models/IParameter.cs b/Extensions/AIStudio.Wpf.Block/Models/IParameter.cs deleted file mode 100644 index bc51972..0000000 --- a/Extensions/AIStudio.Wpf.Block/Models/IParameter.cs +++ /dev/null @@ -1,16 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace AIStudio.Wpf.Block.Models -{ - public interface IParameter - { - //double Value - //{ - // get; - //} - } -} diff --git a/Extensions/AIStudio.Wpf.Block/Models/VarParameter.cs b/Extensions/AIStudio.Wpf.Block/Models/VarParameter.cs deleted file mode 100644 index 071af07..0000000 --- a/Extensions/AIStudio.Wpf.Block/Models/VarParameter.cs +++ /dev/null @@ -1,13 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace AIStudio.Wpf.Block.Models -{ - public class VarParameter : IParameter - { - - } -} diff --git a/Extensions/AIStudio.Wpf.Block/Themes/BlockItemViewModel.xaml b/Extensions/AIStudio.Wpf.Block/Themes/BlockItemViewModel.xaml deleted file mode 100644 index 33a35da..0000000 --- a/Extensions/AIStudio.Wpf.Block/Themes/BlockItemViewModel.xaml +++ /dev/null @@ -1,68 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Extensions/AIStudio.Wpf.Block/Themes/Brushes.xaml b/Extensions/AIStudio.Wpf.Block/Themes/Brushes.xaml deleted file mode 100644 index f9df8c8..0000000 --- a/Extensions/AIStudio.Wpf.Block/Themes/Brushes.xaml +++ /dev/null @@ -1,30 +0,0 @@ - - - #ffbf00 - #cc9900 - White - #ffab19 - #cf8b17 - White - #59c059 - #389438 - White - - #4cbf56 - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Extensions/AIStudio.Wpf.Block/Themes/Geometries.xaml b/Extensions/AIStudio.Wpf.Block/Themes/Geometries.xaml deleted file mode 100644 index 5ca17af..0000000 --- a/Extensions/AIStudio.Wpf.Block/Themes/Geometries.xaml +++ /dev/null @@ -1,6 +0,0 @@ - - - M152.474 62.225c-26.856 0-56.286 21.748-56.286 48.663v802.451c0 26.798 28.773 48.653 55.579 48.653 26.789 0 56.286-21.857 56.286-48.663v-802.434c0-26.914-28.78-48.663-55.579-48.663zM730.146 129.011c-157.836 0-157.836-64.694-315.663-64.694-91.108 0-161.46 42.504-161.46 42.504l-0.658 484.313s71.010-42.446 162.119-42.446c157.827 0 157.827 64.694 315.663 64.694 98.74 0 197.923-51.845 197.923-51.845v-484.264s-99.183 51.737-197.923 51.737z - \ No newline at end of file diff --git a/Extensions/AIStudio.Wpf.Block/ViewModels/ArithmeticModules/AddBlockItemViewModel.cs b/Extensions/AIStudio.Wpf.Block/ViewModels/ArithmeticModules/AddBlockItemViewModel.cs deleted file mode 100644 index 30672f9..0000000 --- a/Extensions/AIStudio.Wpf.Block/ViewModels/ArithmeticModules/AddBlockItemViewModel.cs +++ /dev/null @@ -1,64 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using AIStudio.Wpf.Block.Models; -using AIStudio.Wpf.DiagramDesigner; -using AIStudio.Wpf.DiagramDesigner.Models; - -namespace AIStudio.Wpf.Block.ViewModels -{ - public class AddBlockItemViewModel : BlockDesignerItemViewModel - { - public AddBlockItemViewModel() - { - } - - public AddBlockItemViewModel(IDiagramViewModel root) : base(root) - { - } - - public AddBlockItemViewModel(IDiagramViewModel root, SelectableItemBase designer) : base(root, designer) - { - } - - public AddBlockItemViewModel(IDiagramViewModel root, SerializableItem serializableItem, string serializableType) : base(root, serializableItem, serializableType) - { - } - - protected override void InitNew() - { - ItemWidth = double.NaN; - ItemHeight = double.NaN; - Add1 = new ConstParameter(); - Add2 = new ConstParameter(); - } - - private IParameter _add1; - public IParameter Add1 - { - get - { - return _add1; - } - set - { - SetProperty(ref _add1, value); - } - } - - private IParameter _add2; - public IParameter Add2 - { - get - { - return _add2; - } - set - { - SetProperty(ref _add2, value); - } - } - } -} diff --git a/Extensions/AIStudio.Wpf.Block/ViewModels/ControlModules/ControlBlockItemViewModel.cs b/Extensions/AIStudio.Wpf.Block/ViewModels/ControlModules/ControlBlockItemViewModel.cs deleted file mode 100644 index 30c86bd..0000000 --- a/Extensions/AIStudio.Wpf.Block/ViewModels/ControlModules/ControlBlockItemViewModel.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using AIStudio.Wpf.DiagramDesigner; -using AIStudio.Wpf.DiagramDesigner.Models; - -namespace AIStudio.Wpf.Block.ViewModels -{ - public class ControlBlockItemViewModel : BlockDesignerItemViewModel - { - public ControlBlockItemViewModel() - { - } - - public ControlBlockItemViewModel(IDiagramViewModel root) : base(root) - { - } - - public ControlBlockItemViewModel(IDiagramViewModel root, SelectableItemBase designer) : base(root, designer) - { - } - - public ControlBlockItemViewModel(IDiagramViewModel root, SerializableItem serializableItem, string serializableType) : base(root, serializableItem, serializableType) - { - } - - protected override void InitNew() - { - ItemWidth = double.NaN; - ItemHeight = double.NaN; - AddConnector(new BlockConnectorInfo(this.Root, this, ConnectorOrientation.Bottom)); - } - } -} diff --git a/Extensions/AIStudio.Wpf.Block/ViewModels/ControlModules/KeyboardPressBlockItemViewModel.cs b/Extensions/AIStudio.Wpf.Block/ViewModels/ControlModules/KeyboardPressBlockItemViewModel.cs deleted file mode 100644 index 63114c4..0000000 --- a/Extensions/AIStudio.Wpf.Block/ViewModels/ControlModules/KeyboardPressBlockItemViewModel.cs +++ /dev/null @@ -1,47 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using AIStudio.Wpf.DiagramDesigner; -using AIStudio.Wpf.DiagramDesigner.Models; - -namespace AIStudio.Wpf.Block.ViewModels -{ - public class KeyboardPressBlockItemViewModel : ControlBlockItemViewModel - { - public KeyboardPressBlockItemViewModel() - { - } - - public KeyboardPressBlockItemViewModel(IDiagramViewModel root) : base(root) - { - } - - public KeyboardPressBlockItemViewModel(IDiagramViewModel root, SelectableItemBase designer) : base(root, designer) - { - } - - public KeyboardPressBlockItemViewModel(IDiagramViewModel root, SerializableItem serializableItem, string serializableType) : base(root, serializableItem, serializableType) - { - } - - public List KeyItemsSource - { - get;set; - } - - private string _key; - public string Key - { - get - { - return _key; - } - set - { - SetProperty(ref _key, value); - } - } - } -} diff --git a/Extensions/AIStudio.Wpf.Block/ViewModels/ControlModules/StartBlockItemViewModel.cs b/Extensions/AIStudio.Wpf.Block/ViewModels/ControlModules/StartBlockItemViewModel.cs deleted file mode 100644 index d5e3e1c..0000000 --- a/Extensions/AIStudio.Wpf.Block/ViewModels/ControlModules/StartBlockItemViewModel.cs +++ /dev/null @@ -1,30 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using AIStudio.Wpf.DiagramDesigner; -using AIStudio.Wpf.DiagramDesigner.Models; - -namespace AIStudio.Wpf.Block.ViewModels -{ - public class StartBlockItemViewModel : ControlBlockItemViewModel - { - public StartBlockItemViewModel() - { - } - - public StartBlockItemViewModel(IDiagramViewModel root) : base(root) - { - } - - public StartBlockItemViewModel(IDiagramViewModel root, SelectableItemBase designer) : base(root, designer) - { - } - - public StartBlockItemViewModel(IDiagramViewModel root, SerializableItem serializableItem, string serializableType) : base(root, serializableItem, serializableType) - { - } - - } -} diff --git a/Extensions/AIStudio.Wpf.Block/ViewModels/EventModules/WaitTimeBlockItemViewModel.cs b/Extensions/AIStudio.Wpf.Block/ViewModels/EventModules/WaitTimeBlockItemViewModel.cs deleted file mode 100644 index e36318c..0000000 --- a/Extensions/AIStudio.Wpf.Block/ViewModels/EventModules/WaitTimeBlockItemViewModel.cs +++ /dev/null @@ -1,50 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using AIStudio.Wpf.Block.Models; -using AIStudio.Wpf.DiagramDesigner; -using AIStudio.Wpf.DiagramDesigner.Models; - -namespace AIStudio.Wpf.Block.ViewModels -{ - public class WaitTimeBlockItemViewModel : BlockDesignerItemViewModel - { - public WaitTimeBlockItemViewModel() - { - } - - public WaitTimeBlockItemViewModel(IDiagramViewModel root) : base(root) - { - } - - public WaitTimeBlockItemViewModel(IDiagramViewModel root, SelectableItemBase designer) : base(root, designer) - { - } - - public WaitTimeBlockItemViewModel(IDiagramViewModel root, SerializableItem serializableItem, string serializableType) : base(root, serializableItem, serializableType) - { - } - - protected override void InitNew() - { - ItemWidth = double.NaN; - ItemHeight = double.NaN; - Second = new ConstParameter(); - } - - private IParameter _second; - public IParameter Second - { - get - { - return _second; - } - set - { - SetProperty(ref _second, value); - } - } - } -} diff --git a/Extensions/AIStudio.Wpf.Block/ViewModels/VariableModules/VariableBlockItemViewModel.cs b/Extensions/AIStudio.Wpf.Block/ViewModels/VariableModules/VariableBlockItemViewModel.cs deleted file mode 100644 index ffe346c..0000000 --- a/Extensions/AIStudio.Wpf.Block/ViewModels/VariableModules/VariableBlockItemViewModel.cs +++ /dev/null @@ -1,50 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using AIStudio.Wpf.Block.Models; -using AIStudio.Wpf.DiagramDesigner; -using AIStudio.Wpf.DiagramDesigner.Models; - -namespace AIStudio.Wpf.Block.ViewModels.VariableModules -{ - public class VariableBlockItemViewModel : BlockDesignerItemViewModel - { - public VariableBlockItemViewModel() - { - } - - public VariableBlockItemViewModel(IDiagramViewModel root) : base(root) - { - } - - public VariableBlockItemViewModel(IDiagramViewModel root, SelectableItemBase designer) : base(root, designer) - { - } - - public VariableBlockItemViewModel(IDiagramViewModel root, SerializableItem serializableItem, string serializableType) : base(root, serializableItem, serializableType) - { - } - - protected override void InitNew() - { - ItemWidth = double.NaN; - ItemHeight = double.NaN; - Value = new VarParameter(); - } - - private IParameter _value; - public IParameter Value - { - get - { - return _value; - } - set - { - SetProperty(ref _value, value); - } - } - } -}