部分连接线完成,另外待连接点红色区域显示。

This commit is contained in:
艾竹
2023-05-03 16:00:34 +08:00
parent ed22b9daa3
commit 6b13f51814
19 changed files with 933 additions and 53 deletions

View File

@@ -3357,19 +3357,28 @@ namespace AIStudio.Wpf.DiagramDesigner
if (partialConnection == null)
return null;
ClearNearPort();
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 &&
if (partialConnection.SourceConnectorInfo.Position.DistanceTo(port.Position) < DiagramOption.SnappingOption.SnappingRadius &&
partialConnection.SinkConnectorInfo?.CanAttachTo(port) == true)
{
port.DataItem.ShowConnectors = true;
port.BeAttachTo = true;
return port;
}
}
else if (connectorVertexType == ConnectorVertexType.End)
{
if (partialConnection.SinkConnectorInfo.Position.DistanceTo(port.Position) < DiagramOption.SnappingOption.HittingRadius &&
if (partialConnection.SinkConnectorInfo.Position.DistanceTo(port.Position) < DiagramOption.SnappingOption.SnappingRadius &&
partialConnection.SourceConnectorInfo?.CanAttachTo(port) == true)
{
port.DataItem.ShowConnectors = true;
port.BeAttachTo = true;
return port;
}
}
}
@@ -3381,15 +3390,25 @@ namespace AIStudio.Wpf.DiagramDesigner
if (partialConnection == null)
return null;
ClearNearPort();
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)
{
port.DataItem.ShowConnectors = true;
port.BeAttachTo = true;
return port;
}
}
return null;
}
public void ClearNearPort()
{
Items.OfType<DesignerItemViewModelBase>().ToList().SelectMany(n => n.Connectors).Where(p => p.BeAttachTo == true).ToList().ForEach(p => p.BeAttachTo = false);
}
#endregion
}
}