|
@@ -229,282 +229,289 @@ namespace ComPDFKit.Tool.DrawTool
|
|
|
/// <returns></returns>
|
|
|
protected bool NormalScaling(Point mousePoint)
|
|
|
{
|
|
|
- double left = 0, right = 0, top = 0, bottom = 0;
|
|
|
- double minHeight = RectMinHeight + 2 * rectPadding * currentZoom;
|
|
|
- double minWidth = rectMinWidth + 2 * rectPadding * currentZoom;
|
|
|
+ try
|
|
|
+ {
|
|
|
+ double left = 0, right = 0, top = 0, bottom = 0;
|
|
|
+ double minHeight = RectMinHeight + 2 * rectPadding * currentZoom;
|
|
|
+ double minWidth = rectMinWidth + 2 * rectPadding * currentZoom;
|
|
|
|
|
|
- Point centerPoint = new Point((cacheRect.Right + cacheRect.Left) / 2, (cacheRect.Bottom + cacheRect.Top) / 2);
|
|
|
- Point moveVector = (Point)(mousePoint - centerPoint);
|
|
|
- moveVector = ProportionalScalingOffsetPos(moveVector);
|
|
|
+ Point centerPoint = new Point((cacheRect.Right + cacheRect.Left) / 2, (cacheRect.Bottom + cacheRect.Top) / 2);
|
|
|
+ Point moveVector = (Point)(mousePoint - centerPoint);
|
|
|
+ moveVector = ProportionalScalingOffsetPos(moveVector);
|
|
|
|
|
|
- switch (hitControlType)
|
|
|
- {
|
|
|
- case PointControlType.LeftTop:
|
|
|
- {
|
|
|
- left = centerPoint.X + moveVector.X;
|
|
|
- right = cacheRect.Right;
|
|
|
- top = centerPoint.Y + moveVector.Y;
|
|
|
- bottom = cacheRect.Bottom;
|
|
|
- if (isProportionalScaling)
|
|
|
+ switch (hitControlType)
|
|
|
+ {
|
|
|
+ case PointControlType.LeftTop:
|
|
|
{
|
|
|
- Size size = GetProportionalScalingSize(right - left, bottom - top);
|
|
|
- left = right - size.Width;
|
|
|
- top = bottom - size.Height;
|
|
|
- if(left < maxRect.Left)
|
|
|
+ left = centerPoint.X + moveVector.X;
|
|
|
+ right = cacheRect.Right;
|
|
|
+ top = centerPoint.Y + moveVector.Y;
|
|
|
+ bottom = cacheRect.Bottom;
|
|
|
+ if (isProportionalScaling)
|
|
|
{
|
|
|
- double tmpWidth = right - left;
|
|
|
- left = maxRect.Left;
|
|
|
- double width = right - left;
|
|
|
- double height = (bottom - top) * width / tmpWidth;
|
|
|
- top = bottom - height;
|
|
|
+ Size size = GetProportionalScalingSize(right - left, bottom - top);
|
|
|
+ left = right - size.Width;
|
|
|
+ top = bottom - size.Height;
|
|
|
+ if (left < maxRect.Left)
|
|
|
+ {
|
|
|
+ double tmpWidth = right - left;
|
|
|
+ left = maxRect.Left;
|
|
|
+ double width = right - left;
|
|
|
+ double height = (bottom - top) * width / tmpWidth;
|
|
|
+ top = bottom - height;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (top < maxRect.Top)
|
|
|
+ {
|
|
|
+ double tmpHeight = bottom - top;
|
|
|
+ top = maxRect.Top;
|
|
|
+ double height = bottom - top;
|
|
|
+ double width = (right - left) * height / tmpHeight;
|
|
|
+ left = right - width;
|
|
|
+ }
|
|
|
}
|
|
|
-
|
|
|
- if (top < maxRect.Top)
|
|
|
+ else
|
|
|
{
|
|
|
- double tmpHeight = bottom - top;
|
|
|
- top = maxRect.Top;
|
|
|
- double height = bottom - top;
|
|
|
- double width = (right - left) * height / tmpHeight;
|
|
|
- left = right - width;
|
|
|
+ if (left + minWidth > right)
|
|
|
+ {
|
|
|
+ left = right - minWidth;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (top + minHeight > bottom)
|
|
|
+ {
|
|
|
+ top = bottom - minHeight;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
- else
|
|
|
+ break;
|
|
|
+
|
|
|
+ case PointControlType.LeftMiddle:
|
|
|
{
|
|
|
+ left = centerPoint.X + moveVector.X;
|
|
|
+ right = cacheRect.Right;
|
|
|
+ top = cacheRect.Top;
|
|
|
+ bottom = cacheRect.Bottom;
|
|
|
if (left + minWidth > right)
|
|
|
{
|
|
|
left = right - minWidth;
|
|
|
}
|
|
|
-
|
|
|
- if (top + minHeight > bottom)
|
|
|
- {
|
|
|
- top = bottom - minHeight;
|
|
|
- }
|
|
|
}
|
|
|
- }
|
|
|
- break;
|
|
|
-
|
|
|
- case PointControlType.LeftMiddle:
|
|
|
- {
|
|
|
- left = centerPoint.X + moveVector.X;
|
|
|
- right = cacheRect.Right;
|
|
|
- top = cacheRect.Top;
|
|
|
- bottom = cacheRect.Bottom;
|
|
|
- if (left + minWidth > right)
|
|
|
- {
|
|
|
- left = right - minWidth;
|
|
|
- }
|
|
|
- }
|
|
|
- break;
|
|
|
+ break;
|
|
|
|
|
|
- case PointControlType.LeftBottom:
|
|
|
- {
|
|
|
- left = centerPoint.X + moveVector.X;
|
|
|
- right = cacheRect.Right;
|
|
|
- top = cacheRect.Top;
|
|
|
- bottom = centerPoint.Y + moveVector.Y;
|
|
|
- if (isProportionalScaling)
|
|
|
+ case PointControlType.LeftBottom:
|
|
|
{
|
|
|
- Size size = GetProportionalScalingSize(right - left, bottom - top);
|
|
|
- left = right - size.Width;
|
|
|
- bottom = top + size.Height;
|
|
|
- if (left < maxRect.Left)
|
|
|
+ left = centerPoint.X + moveVector.X;
|
|
|
+ right = cacheRect.Right;
|
|
|
+ top = cacheRect.Top;
|
|
|
+ bottom = centerPoint.Y + moveVector.Y;
|
|
|
+ if (isProportionalScaling)
|
|
|
{
|
|
|
- double tmpWidth = right - left;
|
|
|
- left = maxRect.Left;
|
|
|
- double width = right - left;
|
|
|
- double height = (bottom - top) * width / tmpWidth;
|
|
|
- bottom = top + height;
|
|
|
+ Size size = GetProportionalScalingSize(right - left, bottom - top);
|
|
|
+ left = right - size.Width;
|
|
|
+ bottom = top + size.Height;
|
|
|
+ if (left < maxRect.Left)
|
|
|
+ {
|
|
|
+ double tmpWidth = right - left;
|
|
|
+ left = maxRect.Left;
|
|
|
+ double width = right - left;
|
|
|
+ double height = (bottom - top) * width / tmpWidth;
|
|
|
+ bottom = top + height;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (bottom > maxRect.Bottom)
|
|
|
+ {
|
|
|
+ double tmpHeight = bottom - top;
|
|
|
+ bottom = maxRect.Bottom;
|
|
|
+ double height = bottom - top;
|
|
|
+ double width = (right - left) * height / tmpHeight;
|
|
|
+ left = right - width;
|
|
|
+ }
|
|
|
}
|
|
|
-
|
|
|
- if (bottom > maxRect.Bottom)
|
|
|
+ else
|
|
|
{
|
|
|
- double tmpHeight = bottom - top;
|
|
|
- bottom = maxRect.Bottom;
|
|
|
- double height = bottom - top;
|
|
|
- double width = (right - left) * height / tmpHeight;
|
|
|
- left = right - width;
|
|
|
+ if (left + minWidth > right)
|
|
|
+ {
|
|
|
+ left = right - minWidth;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (top + minHeight > bottom)
|
|
|
+ {
|
|
|
+ bottom = top + minHeight;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
- else
|
|
|
+ break;
|
|
|
+
|
|
|
+ case PointControlType.MiddlBottom:
|
|
|
{
|
|
|
- if (left + minWidth > right)
|
|
|
- {
|
|
|
- left = right - minWidth;
|
|
|
- }
|
|
|
-
|
|
|
+ left = cacheRect.Left;
|
|
|
+ right = cacheRect.Right;
|
|
|
+ top = cacheRect.Top;
|
|
|
+ bottom = centerPoint.Y + moveVector.Y;
|
|
|
if (top + minHeight > bottom)
|
|
|
{
|
|
|
bottom = top + minHeight;
|
|
|
}
|
|
|
}
|
|
|
- }
|
|
|
- break;
|
|
|
-
|
|
|
- case PointControlType.MiddlBottom:
|
|
|
- {
|
|
|
- left = cacheRect.Left;
|
|
|
- right = cacheRect.Right;
|
|
|
- top = cacheRect.Top;
|
|
|
- bottom = centerPoint.Y + moveVector.Y;
|
|
|
- if (top + minHeight > bottom)
|
|
|
- {
|
|
|
- bottom = top + minHeight;
|
|
|
- }
|
|
|
- }
|
|
|
- break;
|
|
|
+ break;
|
|
|
|
|
|
- case PointControlType.RightBottom:
|
|
|
- {
|
|
|
- left = cacheRect.Left;
|
|
|
- right = centerPoint.X + moveVector.X;
|
|
|
- top = cacheRect.Top;
|
|
|
- bottom = centerPoint.Y + moveVector.Y;
|
|
|
- if (isProportionalScaling)
|
|
|
+ case PointControlType.RightBottom:
|
|
|
{
|
|
|
- Size size = GetProportionalScalingSize(right - left, bottom - top);
|
|
|
- right = left + size.Width;
|
|
|
- bottom = top + size.Height;
|
|
|
- if (right > maxRect.Right)
|
|
|
+ left = cacheRect.Left;
|
|
|
+ right = centerPoint.X + moveVector.X;
|
|
|
+ top = cacheRect.Top;
|
|
|
+ bottom = centerPoint.Y + moveVector.Y;
|
|
|
+ if (isProportionalScaling)
|
|
|
{
|
|
|
- double tmpWidth = right - left;
|
|
|
- right = maxRect.Right;
|
|
|
- double width = right - left;
|
|
|
- double height = (bottom - top) * width / tmpWidth;
|
|
|
- bottom = top + height;
|
|
|
+ Size size = GetProportionalScalingSize(right - left, bottom - top);
|
|
|
+ right = left + size.Width;
|
|
|
+ bottom = top + size.Height;
|
|
|
+ if (right > maxRect.Right)
|
|
|
+ {
|
|
|
+ double tmpWidth = right - left;
|
|
|
+ right = maxRect.Right;
|
|
|
+ double width = right - left;
|
|
|
+ double height = (bottom - top) * width / tmpWidth;
|
|
|
+ bottom = top + height;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (bottom > maxRect.Bottom)
|
|
|
+ {
|
|
|
+ double tmpHeight = bottom - top;
|
|
|
+ bottom = maxRect.Bottom;
|
|
|
+ double height = bottom - top;
|
|
|
+ double width = (right - left) * height / tmpHeight;
|
|
|
+ right = left + width;
|
|
|
+ }
|
|
|
}
|
|
|
-
|
|
|
- if (bottom > maxRect.Bottom)
|
|
|
+ else
|
|
|
{
|
|
|
- double tmpHeight = bottom - top;
|
|
|
- bottom = maxRect.Bottom;
|
|
|
- double height = bottom - top;
|
|
|
- double width = (right - left) * height / tmpHeight;
|
|
|
- right = left + width;
|
|
|
+ if (left + minWidth > right)
|
|
|
+ {
|
|
|
+ right = left + minWidth;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (top + minHeight > bottom)
|
|
|
+ {
|
|
|
+ bottom = top + minHeight;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
- else
|
|
|
+ break;
|
|
|
+
|
|
|
+ case PointControlType.RightMiddle:
|
|
|
{
|
|
|
+ left = cacheRect.Left;
|
|
|
+ right = centerPoint.X + moveVector.X;
|
|
|
+ top = cacheRect.Top;
|
|
|
+ bottom = cacheRect.Bottom;
|
|
|
if (left + minWidth > right)
|
|
|
{
|
|
|
right = left + minWidth;
|
|
|
}
|
|
|
-
|
|
|
- if (top + minHeight > bottom)
|
|
|
- {
|
|
|
- bottom = top + minHeight;
|
|
|
- }
|
|
|
}
|
|
|
- }
|
|
|
- break;
|
|
|
-
|
|
|
- case PointControlType.RightMiddle:
|
|
|
- {
|
|
|
- left = cacheRect.Left;
|
|
|
- right = centerPoint.X + moveVector.X;
|
|
|
- top = cacheRect.Top;
|
|
|
- bottom = cacheRect.Bottom;
|
|
|
- if (left + minWidth > right)
|
|
|
- {
|
|
|
- right = left + minWidth;
|
|
|
- }
|
|
|
- }
|
|
|
- break;
|
|
|
+ break;
|
|
|
|
|
|
- case PointControlType.RightTop:
|
|
|
- {
|
|
|
- left = cacheRect.Left;
|
|
|
- right = centerPoint.X + moveVector.X;
|
|
|
- top = centerPoint.Y + moveVector.Y;
|
|
|
- bottom = cacheRect.Bottom;
|
|
|
- if (isProportionalScaling)
|
|
|
+ case PointControlType.RightTop:
|
|
|
{
|
|
|
- Size size = GetProportionalScalingSize(right - left, bottom - top);
|
|
|
- right = left + size.Width;
|
|
|
- top = bottom - size.Height;
|
|
|
- if (right > maxRect.Right)
|
|
|
+ left = cacheRect.Left;
|
|
|
+ right = centerPoint.X + moveVector.X;
|
|
|
+ top = centerPoint.Y + moveVector.Y;
|
|
|
+ bottom = cacheRect.Bottom;
|
|
|
+ if (isProportionalScaling)
|
|
|
{
|
|
|
- double tmpWidth = right - left;
|
|
|
- right = maxRect.Right;
|
|
|
- double width = right - left;
|
|
|
- double height = (bottom - top) * width / tmpWidth;
|
|
|
- top = bottom - height;
|
|
|
+ Size size = GetProportionalScalingSize(right - left, bottom - top);
|
|
|
+ right = left + size.Width;
|
|
|
+ top = bottom - size.Height;
|
|
|
+ if (right > maxRect.Right)
|
|
|
+ {
|
|
|
+ double tmpWidth = right - left;
|
|
|
+ right = maxRect.Right;
|
|
|
+ double width = right - left;
|
|
|
+ double height = (bottom - top) * width / tmpWidth;
|
|
|
+ top = bottom - height;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (top < maxRect.Top)
|
|
|
+ {
|
|
|
+ double tmpHeight = bottom - top;
|
|
|
+ top = maxRect.Top;
|
|
|
+ double height = bottom - top;
|
|
|
+ double width = (right - left) * height / tmpHeight;
|
|
|
+ right = left + width;
|
|
|
+ }
|
|
|
}
|
|
|
-
|
|
|
- if (top < maxRect.Top)
|
|
|
+ else
|
|
|
{
|
|
|
- double tmpHeight = bottom - top;
|
|
|
- top = maxRect.Top;
|
|
|
- double height = bottom - top;
|
|
|
- double width = (right - left) * height / tmpHeight;
|
|
|
- right = left + width;
|
|
|
+ if (left + minWidth > right)
|
|
|
+ {
|
|
|
+ right = left + minWidth;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (top + minHeight > bottom)
|
|
|
+ {
|
|
|
+ top = bottom - minHeight;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
- else
|
|
|
- {
|
|
|
- if (left + minWidth > right)
|
|
|
- {
|
|
|
- right = left + minWidth;
|
|
|
- }
|
|
|
+ break;
|
|
|
|
|
|
+ case PointControlType.MiddleTop:
|
|
|
+ {
|
|
|
+ left = cacheRect.Left;
|
|
|
+ right = cacheRect.Right;
|
|
|
+ top = centerPoint.Y + moveVector.Y;
|
|
|
+ bottom = cacheRect.Bottom;
|
|
|
if (top + minHeight > bottom)
|
|
|
{
|
|
|
top = bottom - minHeight;
|
|
|
}
|
|
|
}
|
|
|
- }
|
|
|
- break;
|
|
|
+ break;
|
|
|
|
|
|
- case PointControlType.MiddleTop:
|
|
|
- {
|
|
|
- left = cacheRect.Left;
|
|
|
- right = cacheRect.Right;
|
|
|
- top = centerPoint.Y + moveVector.Y;
|
|
|
- bottom = cacheRect.Bottom;
|
|
|
- if (top + minHeight > bottom)
|
|
|
+ case PointControlType.Body:
|
|
|
+ case PointControlType.Line:
|
|
|
{
|
|
|
- top = bottom - minHeight;
|
|
|
+ Point OffsetPos = CalcMoveBound(cacheRect, ((Point)(mousePoint - mouseDownPoint)), maxRect);
|
|
|
+ left = cacheRect.Left + OffsetPos.X;
|
|
|
+ right = cacheRect.Right + OffsetPos.X;
|
|
|
+ top = cacheRect.Top + OffsetPos.Y;
|
|
|
+ bottom = cacheRect.Bottom + OffsetPos.Y;
|
|
|
}
|
|
|
- }
|
|
|
- break;
|
|
|
+ break;
|
|
|
|
|
|
- case PointControlType.Body:
|
|
|
- case PointControlType.Line:
|
|
|
- {
|
|
|
- Point OffsetPos = CalcMoveBound(cacheRect, ((Point)(mousePoint - mouseDownPoint)), maxRect);
|
|
|
- left = cacheRect.Left + OffsetPos.X;
|
|
|
- right = cacheRect.Right + OffsetPos.X;
|
|
|
- top = cacheRect.Top + OffsetPos.Y;
|
|
|
- bottom = cacheRect.Bottom + OffsetPos.Y;
|
|
|
- }
|
|
|
- break;
|
|
|
+ default:
|
|
|
+ break;
|
|
|
+ }
|
|
|
|
|
|
- default:
|
|
|
- break;
|
|
|
- }
|
|
|
+ if (left < maxRect.Left)
|
|
|
+ {
|
|
|
+ left = maxRect.Left;
|
|
|
+ }
|
|
|
|
|
|
- if (left < maxRect.Left)
|
|
|
- {
|
|
|
- left = maxRect.Left;
|
|
|
- }
|
|
|
+ if (top < maxRect.Top)
|
|
|
+ {
|
|
|
+ top = maxRect.Top;
|
|
|
+ }
|
|
|
|
|
|
- if (top < maxRect.Top)
|
|
|
- {
|
|
|
- top = maxRect.Top;
|
|
|
- }
|
|
|
+ if (right > maxRect.Right)
|
|
|
+ {
|
|
|
+ right = maxRect.Right;
|
|
|
+ }
|
|
|
|
|
|
- if (right > maxRect.Right)
|
|
|
- {
|
|
|
- right = maxRect.Right;
|
|
|
- }
|
|
|
+ if (bottom > maxRect.Bottom)
|
|
|
+ {
|
|
|
+ bottom = maxRect.Bottom;
|
|
|
+ }
|
|
|
|
|
|
- if (bottom > maxRect.Bottom)
|
|
|
+ drawRect = new Rect(left, top, right - left, bottom - top);
|
|
|
+ moveOffset = new Point(drawRect.X - cacheRect.X, drawRect.Y - cacheRect.Y);
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ catch (Exception ex)
|
|
|
{
|
|
|
- bottom = maxRect.Bottom;
|
|
|
}
|
|
|
-
|
|
|
- drawRect = new Rect(left, top, right - left, bottom - top);
|
|
|
- moveOffset = new Point(drawRect.X - cacheRect.X, drawRect.Y - cacheRect.Y);
|
|
|
- return true;
|
|
|
+ return false;
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
@@ -646,19 +653,19 @@ namespace ComPDFKit.Tool.DrawTool
|
|
|
}
|
|
|
drawingContext?.DrawGeometry(BorderBrush, PointPen, controlGroup);
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
protected void DrawCropPoint(DrawingContext drawingContext, List<PointControlType> ignoreList, int PointSize, Pen PointPen, SolidColorBrush BorderBrush)
|
|
|
{
|
|
|
GeometryGroup controlGroup = new GeometryGroup();
|
|
|
controlGroup.FillRule = FillRule.Nonzero;
|
|
|
-
|
|
|
+
|
|
|
//Left Top Corner
|
|
|
if (!ignoreList.Contains(PointControlType.LeftTop))
|
|
|
{
|
|
|
drawingContext?.DrawRectangle(BorderBrush, null, new Rect(controlPoints[0].X - PointSize, controlPoints[0].Y - PointSize, PointSize, PointSize * 4));
|
|
|
drawingContext?.DrawRectangle(BorderBrush, null, new Rect(controlPoints[0].X - PointSize, controlPoints[0].Y - PointSize, PointSize * 4, PointSize));
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
//Left Center
|
|
|
if (!ignoreList.Contains(PointControlType.LeftMiddle))
|
|
|
{
|
|
@@ -671,7 +678,7 @@ namespace ComPDFKit.Tool.DrawTool
|
|
|
drawingContext?.DrawRectangle(BorderBrush, null, new Rect(controlPoints[2].X - PointSize, controlPoints[2].Y - PointSize * 3, PointSize, PointSize * 4));
|
|
|
drawingContext?.DrawRectangle(BorderBrush, null, new Rect(controlPoints[2].X - PointSize, controlPoints[2].Y, PointSize * 4, PointSize));
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
//Bottom Center
|
|
|
if (!ignoreList.Contains(PointControlType.MiddlBottom))
|
|
|
{
|
|
@@ -681,27 +688,27 @@ namespace ComPDFKit.Tool.DrawTool
|
|
|
//Bottom Right Corner
|
|
|
if (!ignoreList.Contains(PointControlType.RightBottom))
|
|
|
{
|
|
|
- drawingContext?.DrawRectangle(BorderBrush, null, new Rect(controlPoints[4].X , controlPoints[4].Y - PointSize * 3, PointSize, PointSize * 4));
|
|
|
+ drawingContext?.DrawRectangle(BorderBrush, null, new Rect(controlPoints[4].X, controlPoints[4].Y - PointSize * 3, PointSize, PointSize * 4));
|
|
|
drawingContext?.DrawRectangle(BorderBrush, null, new Rect(controlPoints[4].X - PointSize * 3, controlPoints[4].Y, PointSize * 4, PointSize));
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
//Right Center
|
|
|
if (!ignoreList.Contains(PointControlType.RightMiddle))
|
|
|
{
|
|
|
drawingContext?.DrawRectangle(BorderBrush, null, new Rect(controlPoints[5].X, (controlPoints[5].Y + controlPoints[5].Y - PointSize * 5) / 2, PointSize, PointSize * 5));
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
//Right Top Corner
|
|
|
if (!ignoreList.Contains(PointControlType.RightTop))
|
|
|
{
|
|
|
drawingContext?.DrawRectangle(BorderBrush, null, new Rect(controlPoints[6].X, controlPoints[6].Y - PointSize, PointSize, PointSize * 4));
|
|
|
drawingContext?.DrawRectangle(BorderBrush, null, new Rect(controlPoints[6].X - PointSize * 4, controlPoints[6].Y - PointSize, PointSize * 4, PointSize));
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
//Top Center
|
|
|
if (!ignoreList.Contains(PointControlType.MiddleTop))
|
|
|
{
|
|
|
- drawingContext?.DrawRectangle(BorderBrush, null, new Rect((controlPoints[7].X + controlPoints[7].X - PointSize * 5) / 2, controlPoints[7].Y-PointSize, PointSize * 5, PointSize));
|
|
|
+ drawingContext?.DrawRectangle(BorderBrush, null, new Rect((controlPoints[7].X + controlPoints[7].X - PointSize * 5) / 2, controlPoints[7].Y - PointSize, PointSize * 5, PointSize));
|
|
|
}
|
|
|
drawingContext?.DrawGeometry(BorderBrush, PointPen, controlGroup);
|
|
|
}
|