mirror of
https://gitee.com/akwkevin/aistudio.-wpf.-diagram
synced 2026-03-06 17:50:51 +08:00
减少一层逻辑关系
This commit is contained in:
@@ -10,9 +10,17 @@ namespace AIStudio.Wpf.DiagramDesigner
|
||||
{
|
||||
public abstract class ConnectorInfoBase : BindableBase
|
||||
{
|
||||
public virtual ConnectorPoint Location
|
||||
public virtual PointBase Position
|
||||
{
|
||||
get;
|
||||
get;
|
||||
}
|
||||
|
||||
public virtual PointBase MiddlePosition
|
||||
{
|
||||
get
|
||||
{
|
||||
return new PointBase(Position.X + ConnectorWidth / 2, Position.Y + ConnectorHeight / 2);
|
||||
}
|
||||
}
|
||||
|
||||
public ConnectorInfoBase(ConnectorOrientation orientation)
|
||||
|
||||
@@ -296,7 +296,7 @@ namespace AIStudio.Wpf.DiagramDesigner
|
||||
{
|
||||
if (SetProperty(ref _sinkConnectorInfo, value))
|
||||
{
|
||||
SourceB = _sinkConnectorInfo.Location;
|
||||
SourceB = _sinkConnectorInfo.Position;
|
||||
if (_sinkConnectorInfo is FullyCreatedConnectorInfo)
|
||||
{
|
||||
(((FullyCreatedConnectorInfo)_sinkConnectorInfo).DataItem as INotifyPropertyChanged).PropertyChanged += new WeakINPCEventHandler(ConnectorViewModel_PropertyChanged).Handler;
|
||||
@@ -325,7 +325,7 @@ namespace AIStudio.Wpf.DiagramDesigner
|
||||
{
|
||||
get
|
||||
{
|
||||
return SinkConnectorInfoPart?.Location?.MiddlePosition ?? PointBase.Zero;
|
||||
return SinkConnectorInfoPart?.MiddlePosition ?? PointBase.Zero;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -509,9 +509,9 @@ namespace AIStudio.Wpf.DiagramDesigner
|
||||
return null;
|
||||
|
||||
if (marker == null)
|
||||
return port.Location.MiddlePosition;
|
||||
return port.MiddlePosition;
|
||||
|
||||
var pt = port.Location.Position;
|
||||
var pt = port.Position;
|
||||
switch (port.Orientation)
|
||||
{
|
||||
case ConnectorOrientation.Top:
|
||||
|
||||
@@ -425,12 +425,12 @@ namespace AIStudio.Wpf.DiagramDesigner
|
||||
var rightPort = RightConnector;
|
||||
var bottomPort = BottomConnector;
|
||||
|
||||
var left = leftPort == null ? Position.X: Math.Min(Position.X, leftPort.Location.Position.X);
|
||||
var top = topPort == null ? Position.Y : Math.Min(Position.Y, topPort.Location.Position.Y);
|
||||
var left = leftPort == null ? Position.X: Math.Min(Position.X, leftPort.Position.X);
|
||||
var top = topPort == null ? Position.Y : Math.Min(Position.Y, topPort.Position.Y);
|
||||
var right = rightPort == null ? Position.X + ItemWidth :
|
||||
Math.Max(rightPort.Location.Position.X + rightPort.ConnectorWidth, Position.X + ItemWidth);
|
||||
Math.Max(rightPort.Position.X + rightPort.ConnectorWidth, Position.X + ItemWidth);
|
||||
var bottom = bottomPort == null ? Position.Y + ItemHeight :
|
||||
Math.Max(bottomPort.Location.Position.Y + bottomPort.ConnectorHeight, Position.Y + ItemHeight);
|
||||
Math.Max(bottomPort.Position.Y + bottomPort.ConnectorHeight, Position.Y + ItemHeight);
|
||||
|
||||
return new RectangleBase(left, top, right, bottom, true);
|
||||
}
|
||||
|
||||
@@ -9,7 +9,7 @@ namespace AIStudio.Wpf.DiagramDesigner
|
||||
{
|
||||
public class FullyCreatedConnectorInfo : ConnectorInfoBase
|
||||
{
|
||||
public override ConnectorPoint Location
|
||||
public override PointBase Position
|
||||
{
|
||||
get
|
||||
{
|
||||
|
||||
@@ -9,18 +9,18 @@ namespace AIStudio.Wpf.DiagramDesigner
|
||||
{
|
||||
public class PartCreatedConnectionInfo : ConnectorInfoBase
|
||||
{
|
||||
private ConnectorPoint location;
|
||||
public override ConnectorPoint Location
|
||||
private PointBase position;
|
||||
public override PointBase Position
|
||||
{
|
||||
get
|
||||
{
|
||||
return location;
|
||||
return position;
|
||||
}
|
||||
}
|
||||
|
||||
public PartCreatedConnectionInfo(double X, double Y) : base(ConnectorOrientation.None)
|
||||
{
|
||||
this.location = new ConnectorPoint(X, Y);
|
||||
this.position = new PointBase(X, Y);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user