可以把连线从节点上拖下来,并且依附上去。

This commit is contained in:
艾竹
2023-05-03 13:28:16 +08:00
parent 1536e5018d
commit ed22b9daa3
13 changed files with 352 additions and 79 deletions

View File

@@ -3350,5 +3350,46 @@ namespace AIStudio.Wpf.DiagramDesigner
}
}
#endregion
#region
public FullyCreatedConnectorInfo FindNearPortToAttachTo(ConnectionViewModel partialConnection, ConnectorVertexType connectorVertexType)
{
if (partialConnection == null)
return null;
foreach (var port in Items.OfType<DesignerItemViewModelBase>().ToList().SelectMany(n => n.Connectors))
{
if (connectorVertexType == ConnectorVertexType.Start)
{
if (partialConnection.SourceConnectorInfo.Position.DistanceTo(port.Position) < DiagramOption.SnappingOption.HittingRadius &&
partialConnection.SinkConnectorInfo?.CanAttachTo(port) == true)
return port;
}
else if (connectorVertexType == ConnectorVertexType.End)
{
if (partialConnection.SinkConnectorInfo.Position.DistanceTo(port.Position) < DiagramOption.SnappingOption.HittingRadius &&
partialConnection.SourceConnectorInfo?.CanAttachTo(port) == true)
return port;
}
}
return null;
}
public FullyCreatedConnectorInfo FindNearPortToAttachTo(ConnectionViewModel partialConnection)
{
if (partialConnection == null)
return null;
foreach (var port in Items.OfType<DesignerItemViewModelBase>().ToList().SelectMany(n => n.Connectors))
{
if (partialConnection.OnGoingPosition.DistanceTo(port.Position) < DiagramOption.SnappingOption.SnappingRadius &&
partialConnection.SourceConnectorInfoFully?.CanAttachTo(port) == true)
return port;
}
return null;
}
#endregion
}
}