Files
aistudio-wpf-diagram/AIStudio.Wpf.DiagramDesigner/Routers/Routers.Utils.cs
2023-01-27 20:43:41 +08:00

35 lines
1.5 KiB
C#

using AIStudio.Wpf.DiagramDesigner.Geometrys;
using AIStudio.Wpf.DiagramDesigner.Models;
namespace AIStudio.Wpf.DiagramDesigner
{
public static partial class Routers
{
public static PointBase GetPortPositionBasedOnAlignment(ConnectorInfoBase port)
{
var pt = port.Position;
switch (port.Orientation)
{
case ConnectorOrientation.Left:
return new PointBase(pt.X, pt.Y + port.ConnectorHeight / 2);
case ConnectorOrientation.TopLeft:
return new PointBase(pt.X, pt.Y);
case ConnectorOrientation.Top:
return new PointBase(pt.X + port.ConnectorWidth / 2, pt.Y);
case ConnectorOrientation.TopRight:
return new PointBase(pt.X + port.ConnectorWidth, pt.Y);
case ConnectorOrientation.Right:
return new PointBase(pt.X + port.ConnectorWidth, pt.Y + port.ConnectorHeight / 2);
case ConnectorOrientation.BottomRight:
return new PointBase(pt.X + port.ConnectorWidth, pt.Y + port.ConnectorHeight);
case ConnectorOrientation.Bottom:
return new PointBase(pt.X + port.ConnectorWidth / 2, pt.Y + port.ConnectorHeight);
case ConnectorOrientation.BottomLeft:
return new PointBase(pt.X, pt.Y + port.ConnectorHeight);
default:
return pt;
}
}
}
}