This commit is contained in:
akwkevin
2025-03-23 16:23:19 +08:00
parent 4c36933b76
commit c269be1bbf
13 changed files with 95 additions and 15 deletions

View File

@@ -78,6 +78,12 @@ namespace AIStudio.Wpf.DiagramDesigner
AddLabelCommand = new SimpleCommand(Command_Enable, para => AddLabel());
}
protected override void InitNew()
{
base.InitNew();
ZIndex = -1;
}
protected override void LoadDesignerItemViewModel(SelectableItemBase designerbase)
{
base.LoadDesignerItemViewModel(designerbase);

View File

@@ -1253,15 +1253,28 @@ namespace AIStudio.Wpf.DiagramDesigner
private void Add(SelectableDesignerItemViewModelBase item, bool? isSelected = true)
{
item.Root = this;
item.ZIndex = Items.Any() ? Items.Max(p => p.ZIndex) + 1 : 0;
if (item.ZIndex == 0)
{
item.ZIndex = Items.Any() ? Items.Max(p => p.ZIndex) + 1 : 0;
}
if (item.Id == Guid.Empty)
{
item.Id = Guid.NewGuid();
}
if (item is LogicalGateItemViewModelBase logical && logical.OrderNumber == 0)
if (item is LogicalGateItemViewModelBase logical)
{
logical.OrderNumber = Items.OfType<LogicalGateItemViewModelBase>().Where(p => p.OrderNumber > 0).Count() + 1;
if (logical.OrderNumber == 0 || Items.OfType<LogicalGateItemViewModelBase>().Any(p => p.OrderNumber == logical.OrderNumber))
{
if (Items.OfType<LogicalGateItemViewModelBase>().Any())
{
logical.OrderNumber = Items.OfType<LogicalGateItemViewModelBase>().OrderByDescending(p => p.OrderNumber).FirstOrDefault().OrderNumber + 1;
}
else
{
logical.OrderNumber = 1;
}
}
}
//if (item is BlockDesignerItemViewModel block)
//{

View File

@@ -205,10 +205,10 @@ namespace AIStudio.Wpf.DiagramDesigner
public virtual LogicalConnectorInfo ExecuteAddToInput(LogicalConnectorInfo connector)
{
if (Input.Values.Count >= 2)
{
this.ItemHeight = this.ItemHeight * (Input.Values.Count + 1) / Input.Values.Count;
}
//if (Input.Values.Count >= 2)
//{
// this.ItemHeight = this.ItemHeight * (Input.Values.Count + 1) / Input.Values.Count;
//}
connector.Orientation = ConnectorOrientation.Left;
connector.IsInnerPoint = true;
connector.IsPortless = false;

View File

@@ -84,11 +84,16 @@ namespace AIStudio.Wpf.DiagramDesigner
if (designerbase is DrawingDesignerItemBase designer)
{
this.Erasable = designer.Erasable;
this.Geometry = PathGeometry.CreateFromGeometry(Geometry.Parse(designer.Geometry));
if (!string.IsNullOrEmpty(designer.Matrix))
try
{
this.Geometry.Transform = Transform.Parse(designer.Matrix);
this.Geometry = PathGeometry.CreateFromGeometry(Geometry.Parse(designer.Geometry));
if (!string.IsNullOrEmpty(designer.Matrix))
{
this.Geometry.Transform = Transform.Parse(designer.Matrix);
}
}
catch { }
this.Points = designer.Points;
this.DrawMode = designer.DrawMode;
this.SelectedDisable = Erasable;

View File

@@ -44,7 +44,16 @@ namespace AIStudio.Wpf.DiagramDesigner
base.InitNewDrawing();
}
protected override void LoadDesignerItemViewModel(SelectableItemBase designerbase)
{
base.LoadDesignerItemViewModel(designerbase);
if (designerbase is DrawingDesignerItemBase designer)
{
IsFinish = true;
InitNewDrawing();
}
}
public override bool OnMouseMove(IInputElement sender, MouseEventArgs e)
{
if (e.LeftButton == MouseButtonState.Pressed)

View File

@@ -45,6 +45,17 @@ namespace AIStudio.Wpf.DiagramDesigner
base.InitNewDrawing();
}
protected override void LoadDesignerItemViewModel(SelectableItemBase designerbase)
{
base.LoadDesignerItemViewModel(designerbase);
if (designerbase is DrawingDesignerItemBase designer)
{
IsFinish = true;
InitNewDrawing();
}
}
public override bool OnMouseMove(IInputElement sender, MouseEventArgs e)
{
if (e.LeftButton == MouseButtonState.Pressed)

View File

@@ -44,6 +44,17 @@ namespace AIStudio.Wpf.DiagramDesigner
base.InitNewDrawing();
}
protected override void LoadDesignerItemViewModel(SelectableItemBase designerbase)
{
base.LoadDesignerItemViewModel(designerbase);
if (designerbase is DrawingDesignerItemBase designer)
{
IsFinish = true;
InitNewDrawing();
}
}
public override bool OnMouseMove(IInputElement sender, MouseEventArgs e)
{
if (e.LeftButton == MouseButtonState.Pressed)