部分连接线拖拽完成

This commit is contained in:
艾竹
2023-05-03 09:59:46 +08:00
parent 6de36f2473
commit 1536e5018d
33 changed files with 997 additions and 158 deletions

View File

@@ -18,10 +18,10 @@ namespace AIStudio.Wpf.DiagramDesigner
if (link.IsFullConnection == false)
return Normal(_, link);
double x2 = link.SourceConnectorInfo.MiddlePosition.X < link.SinkConnectorInfoFully.MiddlePosition.X ?
link.SinkConnectorInfoFully.MiddlePosition.X - Math.Abs(link.SourceConnectorInfo.MiddlePosition.Y - link.SinkConnectorInfoFully.MiddlePosition.Y)
: link.SinkConnectorInfoFully.MiddlePosition.X + Math.Abs(link.SourceConnectorInfo.MiddlePosition.Y - link.SinkConnectorInfoFully.MiddlePosition.Y);
double y2 = link.SourceConnectorInfo.MiddlePosition.Y;
double x2 = link.SourceConnectorInfoFully.MiddlePosition.X < link.SinkConnectorInfoFully.MiddlePosition.X ?
link.SinkConnectorInfoFully.MiddlePosition.X - Math.Abs(link.SourceConnectorInfoFully.MiddlePosition.Y - link.SinkConnectorInfoFully.MiddlePosition.Y)
: link.SinkConnectorInfoFully.MiddlePosition.X + Math.Abs(link.SourceConnectorInfoFully.MiddlePosition.Y - link.SinkConnectorInfoFully.MiddlePosition.Y);
double y2 = link.SourceConnectorInfoFully.MiddlePosition.Y;
return new PointBase[] { new PointBase(x2, y2) };

View File

@@ -23,13 +23,13 @@ namespace AIStudio.Wpf.DiagramDesigner
var spots = new List<PointBase>();
var verticals = new List<double>();
var horizontals = new List<double>();
var sideA = link.SourceConnectorInfo.Orientation;
var sideA = link.SourceConnectorInfoFully.Orientation;
var sideAVertical = IsVerticalSide(sideA);
var sideB = link.SinkConnectorInfo.Orientation;
var sideBVertical = IsVerticalSide(sideB);
var originA = GetPortPositionBasedOnAlignment(link.SourceConnectorInfo);
var originA = GetPortPositionBasedOnAlignment(link.SourceConnectorInfoFully);
var originB = GetPortPositionBasedOnAlignment(link.SinkConnectorInfo);
var shapeA = link.SourceConnectorInfo.DataItem.GetBounds(includePorts: true);
var shapeA = link.SourceConnectorInfoFully.DataItem.GetBounds(includePorts: true);
var shapeB = link.SinkConnectorInfoFully.DataItem.GetBounds(includePorts: true);
var inflatedA = shapeA.InflateRectangle(shapeMargin, shapeMargin);
var inflatedB = shapeB.InflateRectangle(shapeMargin, shapeMargin);