diff --git a/AIStudio.Wpf.DiagramDesigner/Controls/DesignerCanvas.cs b/AIStudio.Wpf.DiagramDesigner/Controls/DesignerCanvas.cs
index a64a4c4..b2c4ddc 100644
--- a/AIStudio.Wpf.DiagramDesigner/Controls/DesignerCanvas.cs
+++ b/AIStudio.Wpf.DiagramDesigner/Controls/DesignerCanvas.cs
@@ -98,9 +98,9 @@ namespace AIStudio.Wpf.DiagramDesigner
_sourceItemsContainer = value;
if (_sourceItemsContainer != null)
{
- BlockItemsContainerInfo sourceDataItem = _sourceItemsContainer.Info;
+ BlockItemsContainerInfo sourceContainerInfo = _sourceItemsContainer.Info;
- sourceDataItem.DataItem.RemoveChild(_sourceItemsContainer.DragObject);
+ sourceContainerInfo.DataItem.RemoveChild(_sourceItemsContainer.DragObject, sourceContainerInfo);
EnterMove();
}
diff --git a/AIStudio.Wpf.DiagramDesigner/Themes/ConnectorItem.xaml b/AIStudio.Wpf.DiagramDesigner/Themes/ConnectorItem.xaml
index db036e5..3de5c6e 100644
--- a/AIStudio.Wpf.DiagramDesigner/Themes/ConnectorItem.xaml
+++ b/AIStudio.Wpf.DiagramDesigner/Themes/ConnectorItem.xaml
@@ -164,17 +164,18 @@
dd:WidthAndHeightProps.BoundActualHeight="{Binding ActualItemHeight,Mode=OneWayToSource}">
+ StrokeThickness="0"
+ Stroke="{Binding ColorViewModel.LineColor,Converter={StaticResource ColorBrushConverter}}" />
+
+
diff --git a/AIStudio.Wpf.DiagramDesigner/Themes/DesignerItem.xaml b/AIStudio.Wpf.DiagramDesigner/Themes/DesignerItem.xaml
index f7b37c7..e00c0bc 100644
--- a/AIStudio.Wpf.DiagramDesigner/Themes/DesignerItem.xaml
+++ b/AIStudio.Wpf.DiagramDesigner/Themes/DesignerItem.xaml
@@ -146,12 +146,12 @@
-
-
+ GetOffSetFunc="{Binding FirstContainer.GetOffSetFunc,Mode=OneWayToSource}"
+ Border="{Binding FirstContainer}">
+
@@ -161,8 +161,8 @@
-
-
+
+
diff --git a/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/Connector/BlockConnectorInfo.cs b/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/Connector/BlockConnectorInfo.cs
index 4835080..52dfcc2 100644
--- a/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/Connector/BlockConnectorInfo.cs
+++ b/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/Connector/BlockConnectorInfo.cs
@@ -44,6 +44,13 @@ namespace AIStudio.Wpf.DiagramDesigner
ColorViewModel.FillColor.Color = Colors.Transparent;
}
+ public new BlockDesignerItemViewModel DataItem
+ {
+ get
+ {
+ return Parent as BlockDesignerItemViewModel;
+ }
+ }
public override bool CanAttachTo(ConnectorInfoBase port)
{
diff --git a/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/Container/BlockItemsContainerInfo.cs b/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/Container/BlockItemsContainerInfo.cs
index 2853835..4dbcad6 100644
--- a/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/Container/BlockItemsContainerInfo.cs
+++ b/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/Container/BlockItemsContainerInfo.cs
@@ -134,16 +134,24 @@ namespace AIStudio.Wpf.DiagramDesigner
}
}
+ private ObservableCollection _children = new ObservableCollection();
public ObservableCollection Children
{
- get; set;
- } = new ObservableCollection();
+ get
+ {
+ return _children;
+ }
+ set
+ {
+ SetProperty(ref _children, value);
+ }
+ }
public List ChildrenContain
{
get
{
- return Children?.SelectMany(p => p.Contains)?.ToList();
+ return Children?.SelectMany(p => p.Containers)?.ToList();
}
}
@@ -151,13 +159,13 @@ namespace AIStudio.Wpf.DiagramDesigner
{
get
{
- if (DataItem.ParentContain == null)
+ if (DataItem.ParentContainer == null)
{
return 0;
}
else
{
- return DataItem.ParentContain.ContainLevel + 1;
+ return DataItem.ParentContainer.ContainLevel + 1;
}
}
}
@@ -201,8 +209,8 @@ namespace AIStudio.Wpf.DiagramDesigner
}
}
- public virtual bool CanAttachTo(DesignerItemViewModelBase item)
- => item != null && item != this.DataItem && !item.IsReadOnly && item is BlockDesignerItemViewModel;
+ public virtual bool CanAttachTo(BlockDesignerItemViewModel item)
+ => item != null && item != this.DataItem && !item.IsReadOnly && item.CanContainTo;
#endregion
public double GetItemWidth()
@@ -217,13 +225,13 @@ namespace AIStudio.Wpf.DiagramDesigner
public void AddChild(BlockDesignerItemViewModel child)
{
- child.ParentContain = this;
+ child.ParentContainer = this;
Children.Add(child);
}
public void RemoveChild(BlockDesignerItemViewModel child)
{
- child.ParentContain = null;
+ child.ParentContainer = null;
Children.Remove(child);
}
@@ -238,12 +246,12 @@ namespace AIStudio.Wpf.DiagramDesigner
{
foreach (var item in children)
{
- if (item.Contains != null)
+ if (item.Containers != null)
{
- foreach (var contain in item.Contains)
+ foreach (var container in item.Containers)
{
- itemsContainers.Add(contain);
- itemsContainers.AddRange(contain.GetAllContain(contain.Children, false));
+ itemsContainers.Add(container);
+ itemsContainers.AddRange(container.GetAllContain(container.Children, false));
}
}
}
diff --git a/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/DiagramViewModel.cs b/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/DiagramViewModel.cs
index 76ce8e5..857b46f 100644
--- a/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/DiagramViewModel.cs
+++ b/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/DiagramViewModel.cs
@@ -7,6 +7,7 @@ using System.Reactive.Linq;
using System.Text.RegularExpressions;
using System.Windows;
using System.Windows.Controls;
+using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Xml.Serialization;
@@ -1567,7 +1568,7 @@ namespace AIStudio.Wpf.DiagramDesigner
private void ExecutedRemoveNextCommand(object parameter)
{
-
+
}
private void ExecutedAddChildCommand(object parameter)
@@ -3216,7 +3217,7 @@ namespace AIStudio.Wpf.DiagramDesigner
Where(p => p != blockDesignerItemViewModel)
.ToList();
- foreach (var port in items.SelectMany(n => n.Contains))
+ foreach (var port in items.SelectMany(n => n.Containers))
{
if (port.GetBounds().IntersectsWith(blockDesignerItemViewModel.GetBounds())) //如果两个位置相交
{
@@ -3253,6 +3254,144 @@ namespace AIStudio.Wpf.DiagramDesigner
return null;
}
+ ///
+ /// type=0最近且没有依附;=1
+ ///
+ ///
+ ///
+ ///
+ public Tuple FindNearPortToAttachTo(BlockDesignerItemTempLink blockDesignerItemTempLink, bool isExist)
+ {
+ if (blockDesignerItemTempLink == null || blockDesignerItemTempLink.Items == null || blockDesignerItemTempLink.Items.Count == 0)
+ return new Tuple(null, null);
+
+ List items;
+ if (isExist == false)
+ {
+ items = Items.OfType().Where(p => !blockDesignerItemTempLink.Items.Contains(p)).ToList();
+ }
+ else
+ {
+ items = Items.OfType().Where(p => !blockDesignerItemTempLink.Items.Contains(p)).ToList();
+ }
+
+ FullyCreatedConnectorInfo parent = null;
+ FullyCreatedConnectorInfo next = null;
+
+ foreach (var port in items.SelectMany(n => n.Connectors).OfType())
+ {
+ //已经被连接的不允许在顶部吸附了
+ if ((port.Orientation == ConnectorOrientation.Top || port.Orientation == ConnectorOrientation.Left) && port.DataItem.Prev != null)
+ {
+ continue;
+ }
+
+ foreach (var port2 in blockDesignerItemTempLink.Connectors)
+ {
+ //parent
+ if (parent == null)
+ {
+ if ((port.Orientation == ConnectorOrientation.Right && port2.Orientation == ConnectorOrientation.Left)
+ || (port.Orientation == ConnectorOrientation.Bottom && port2.Orientation == ConnectorOrientation.Top))
+ {
+
+ if (port.Position.DistanceTo(port2.Position) < DiagramOption.SnappingOption.SnappingRadius)
+ {
+ port.DataItem.ShowConnectors = true;
+ if (port2.CanAttachTo(port) == true)
+ {
+ port.BeAttachTo = true;
+ parent = port;
+ continue;
+ }
+ else
+ {
+ port.DisableAttachTo = true;
+ }
+
+ }
+ }
+ }
+
+ //next
+ if (next == null)
+ {
+ if ((port.Orientation == ConnectorOrientation.Left && port2.Orientation == ConnectorOrientation.Right)
+ || (port.Orientation == ConnectorOrientation.Top && port2.Orientation == ConnectorOrientation.Bottom))
+ {
+
+ if (port.Position.DistanceTo(port2.Position) < DiagramOption.SnappingOption.SnappingRadius)
+ {
+ port.DataItem.ShowConnectors = true;
+ if (port2.CanAttachTo(port) == true)
+ {
+ port.BeAttachTo = true;
+ next = port;
+ continue;
+ }
+ else
+ {
+ port.DisableAttachTo = true;
+ }
+
+ }
+ }
+ }
+ }
+ }
+
+ return new Tuple(parent, next);
+ }
+
+ public BlockItemsContainerInfo FindNearContainerToAttachTo(BlockDesignerItemTempLink blockDesignerItemTempLink)
+ {
+ if (blockDesignerItemTempLink == null || blockDesignerItemTempLink.Items == null || blockDesignerItemTempLink.Items.Count == 0)
+ return null;
+
+ List items;
+
+ items = Items.OfType().Where(p => !blockDesignerItemTempLink.Items.Contains(p)).ToList();
+
+ foreach (var port in items.SelectMany(n => n.Containers))
+ {
+ if (port.GetBounds().IntersectsWith(blockDesignerItemTempLink.GetBounds())) //如果两个位置相交
+ {
+ var innerport = port.GetAllContain(port.Children, false).Where(p => p.GetBounds().IntersectsWith(blockDesignerItemTempLink.GetBounds())).OrderByDescending(p => p.ContainLevel).FirstOrDefault();
+ if (innerport != null)
+ {
+ innerport.DataItem.ShowConnectors = true;
+ if (innerport.CanAttachTo(blockDesignerItemTempLink.Items.FirstOrDefault()) == true)
+ {
+ innerport.BeAttachTo = true;
+ return innerport;
+ }
+ //else
+ //{
+ // innerport.DisableAttachTo = true;
+ // return null;
+ //}
+
+ }
+ else
+ {
+ port.DataItem.ShowConnectors = true;
+ if (port.CanAttachTo(blockDesignerItemTempLink.Items.FirstOrDefault()) == true)
+ {
+ port.BeAttachTo = true;
+ return port;
+ }
+ //else
+ //{
+ // port.DisableAttachTo = true;
+ // return null;
+ //}
+ }
+ }
+ }
+
+ return null;
+ }
+
public void ClearNearPort()
{
Items.OfType().ToList().SelectMany(n => n.Connectors).Where(p => p.BeAttachTo == true || p.DisableAttachTo == true).ToList()
@@ -3260,8 +3399,6 @@ namespace AIStudio.Wpf.DiagramDesigner
p.DisableAttachTo = false;
p.BeAttachTo = false;
});
-
-
}
public void ClearNearContain()
@@ -3281,10 +3418,11 @@ namespace AIStudio.Wpf.DiagramDesigner
{
ClearNearPort();
ClearNearContain();
- foreach (BlockDesignerItemViewModel item in blocks)
+ var links = BlockDesignerItemTempLink.Build(blocks);
+ foreach (BlockDesignerItemTempLink item in links)
{
- var contain = FindNearContainerToAttachTo(item);
- if (contain != null)
+ var container = FindNearContainerToAttachTo(item);
+ if (container != null)
{
continue;
}
@@ -3301,14 +3439,16 @@ namespace AIStudio.Wpf.DiagramDesigner
{
ClearNearPort();
ClearNearContain();
- foreach (BlockDesignerItemViewModel item in blocks)
+ var links = BlockDesignerItemTempLink.Build(blocks);
+
+ foreach (BlockDesignerItemTempLink item in links)
{
- var contain = FindNearContainerToAttachTo(item);
- if (contain != null)
+ var container = FindNearContainerToAttachTo(item);
+ if (container != null)
{
- (contain.DataItem as BlockDesignerItemViewModel).AddChild(item);
- contain.BeAttachTo = false;
- contain.DisableAttachTo = false;
+ (container.DataItem as BlockDesignerItemViewModel).AddChild(item.Items.FirstOrDefault(), container);//待完善
+ container.BeAttachTo = false;
+ container.DisableAttachTo = false;
continue;
}
@@ -3318,35 +3458,35 @@ namespace AIStudio.Wpf.DiagramDesigner
if (portParent != null)
{
- (portParent.DataItem as BlockDesignerItemViewModel).AddNext(item);
+ (portParent.DataItem as BlockDesignerItemViewModel).AddNext(item.Items.FirstOrDefault());
portParent.BeAttachTo = false;
portParent.DisableAttachTo = false;
}
else
{
- if (item.Parent != null)
+ if (item.Items.FirstOrDefault().Parent != null)
{
- (item.Parent as BlockDesignerItemViewModel).RemoveNext();
+ (item.Items.FirstOrDefault().Parent as BlockDesignerItemViewModel).RemoveNext();
}
}
if (portNext != null)
{
- item.AddNext(portNext.DataItem as BlockDesignerItemViewModel);
+ item.Items.LastOrDefault().AddNext(portNext.DataItem as BlockDesignerItemViewModel);
portNext.BeAttachTo = false;
portNext.DisableAttachTo = false;
}
else
{
- if (item.Next != null)
+ if (item.Items.LastOrDefault().Next != null)
{
- item.RemoveNext();
+ item.Items.LastOrDefault().RemoveNext();
}
}
}
}
}
-
+
#endregion
diff --git a/AIStudio.Wpf.DiagramDesigner/ViewModels/DefaultViewModel/BlockContainDesignerItemViewModel.cs b/AIStudio.Wpf.DiagramDesigner/ViewModels/DefaultViewModel/BlockContainDesignerItemViewModel.cs
index 39f74f2..6b4c229 100644
--- a/AIStudio.Wpf.DiagramDesigner/ViewModels/DefaultViewModel/BlockContainDesignerItemViewModel.cs
+++ b/AIStudio.Wpf.DiagramDesigner/ViewModels/DefaultViewModel/BlockContainDesignerItemViewModel.cs
@@ -29,32 +29,40 @@ namespace AIStudio.Wpf.DiagramDesigner
{
base.InitNew();
- Contains.Add(new BlockItemsContainerInfo(this.Root, this));
+ Containers.Add(new BlockItemsContainerInfo(this.Root, this));
}
- public override void AddChild(BlockDesignerItemViewModel child)
+ public override void AddChild(BlockDesignerItemViewModel child, BlockItemsContainerInfo container)
{
- var oldchildren = FirstContain.Children.FirstOrDefault();
+ if (container == null)
+ {
+ container = FirstContainer;
+ }
+ var oldchildren = container.Children.FirstOrDefault();
if (oldchildren != null)
{
- this.RemoveChild(oldchildren);
+ this.RemoveChild(oldchildren, container);
}
Root.Items.Remove(child);
- FirstContain.AddChild(child);
+ container.AddChild(child);
- base.AddChild(child);
+ base.AddChild(child, container);
}
- public override void RemoveChild(BlockDesignerItemViewModel child)
- {
+ public override void RemoveChild(BlockDesignerItemViewModel child, BlockItemsContainerInfo container)
+ {
+ if (container == null)
+ {
+ container = FirstContainer;
+ }
Root.Items.Add(child);
- FirstContain.RemoveChild(child);
+ container.RemoveChild(child);
this.RemoveFromSelection();
child.AddToSelection(true, false);
- base.RemoveChild(child);
+ base.RemoveChild(child, container);
}
}
}
diff --git a/AIStudio.Wpf.DiagramDesigner/ViewModels/DefaultViewModel/BlockContainListDesignerItemViewModel.cs b/AIStudio.Wpf.DiagramDesigner/ViewModels/DefaultViewModel/BlockContainListDesignerItemViewModel.cs
index bcc91d3..5a72b64 100644
--- a/AIStudio.Wpf.DiagramDesigner/ViewModels/DefaultViewModel/BlockContainListDesignerItemViewModel.cs
+++ b/AIStudio.Wpf.DiagramDesigner/ViewModels/DefaultViewModel/BlockContainListDesignerItemViewModel.cs
@@ -29,23 +29,31 @@ namespace AIStudio.Wpf.DiagramDesigner
{
base.InitNew();
- Contains.Add(new BlockItemsContainerInfo(this.Root, this));
+ Containers.Add(new BlockItemsContainerInfo(this.Root, this));
}
- public override void AddChild(BlockDesignerItemViewModel child)
+ public override void AddChild(BlockDesignerItemViewModel child, BlockItemsContainerInfo container)
{
+ if (container == null)
+ {
+ container = FirstContainer;
+ }
Root.Items.Remove(child);
- FirstContain.Children.Add(child);
+ container.Children.Add(child);
- base.AddChild(child);
+ base.AddChild(child, container);
}
- public override void RemoveChild(BlockDesignerItemViewModel child)
+ public override void RemoveChild(BlockDesignerItemViewModel child, BlockItemsContainerInfo container)
{
+ if (container == null)
+ {
+ container = FirstContainer;
+ }
Root.Items.Add(child);
- FirstContain.Children.Remove(child);
+ container.Children.Remove(child);
- base.RemoveChild(child);
+ base.RemoveChild(child, container);
}
}
}
diff --git a/AIStudio.Wpf.DiagramDesigner/ViewModels/DefaultViewModel/BlockDesignerItemTempLink.cs b/AIStudio.Wpf.DiagramDesigner/ViewModels/DefaultViewModel/BlockDesignerItemTempLink.cs
index 3d4690b..0de46b0 100644
--- a/AIStudio.Wpf.DiagramDesigner/ViewModels/DefaultViewModel/BlockDesignerItemTempLink.cs
+++ b/AIStudio.Wpf.DiagramDesigner/ViewModels/DefaultViewModel/BlockDesignerItemTempLink.cs
@@ -1,24 +1,72 @@
using System;
using System.Collections.Generic;
+using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
+using AIStudio.Wpf.DiagramDesigner.Geometrys;
namespace AIStudio.Wpf.DiagramDesigner
{
public class BlockDesignerItemTempLink
{
- List Items
+ public List Items
{
- get;set;
+ get; set;
} = new List();
- //public static List Build(List blocks)
- //{
- // List links = new List(){
- // new BlockDesignerItemTempLink() };
+ public RectangleBase GetBounds(bool includePorts = false)
+ {
+ return Items.FirstOrDefault().GetBounds();
+ }
- // foreach(var )
- //}
+ public List Connectors
+ {
+ get
+ {
+ List connectors = new List();
+ if (Items.FirstOrDefault().TopConnector != null)
+ {
+ connectors.Add(Items.FirstOrDefault().TopConnector);
+ }
+ if (Items.FirstOrDefault().LeftConnector != null)
+ {
+ connectors.Add(Items.FirstOrDefault().LeftConnector);
+ }
+ if (Items.LastOrDefault().BottomConnector != null)
+ {
+ connectors.Add(Items.LastOrDefault().BottomConnector);
+ }
+ if (Items.LastOrDefault().RightConnector != null)
+ {
+ connectors.Add(Items.LastOrDefault().RightConnector);
+ }
+ return connectors;
+ }
+ }
+
+ public static List Build(List blocks)
+ {
+ List links = new List();
+ foreach (var block in blocks.OrderBy(p => p.BlockLevel).ToList())
+ {
+ bool success = false;
+ foreach (var link in links)
+ {
+ if (link.Items.LastOrDefault() == block.Prev)
+ {
+ link.Items.Add(block);
+ success = true;
+ }
+ }
+ if (success == false)
+ {
+ BlockDesignerItemTempLink link = new BlockDesignerItemTempLink();
+ link.Items.Add(block);
+ links.Add(link);
+ }
+ }
+ return links;
+ }
}
}
diff --git a/AIStudio.Wpf.DiagramDesigner/ViewModels/DefaultViewModel/BlockDesignerItemViewModel.cs b/AIStudio.Wpf.DiagramDesigner/ViewModels/DefaultViewModel/BlockDesignerItemViewModel.cs
index 91b41bf..a3ddc97 100644
--- a/AIStudio.Wpf.DiagramDesigner/ViewModels/DefaultViewModel/BlockDesignerItemViewModel.cs
+++ b/AIStudio.Wpf.DiagramDesigner/ViewModels/DefaultViewModel/BlockDesignerItemViewModel.cs
@@ -43,6 +43,7 @@ namespace AIStudio.Wpf.DiagramDesigner
AlignNext(next);
return;
}
+ var oldnext = this.Next;
RemoveNext();
next.Left = this.Left;
@@ -54,6 +55,14 @@ namespace AIStudio.Wpf.DiagramDesigner
{
next.AlignNext(next.Next);
}
+ if (oldnext != null)
+ {
+ System.Windows.Application.Current?.Dispatcher.BeginInvoke(new Action(async () => {
+ await Task.Delay(10);
+ GetLast().AddNext(oldnext);
+ }));
+
+ }
}
public void AlignNext(BlockDesignerItemViewModel next)
@@ -97,7 +106,7 @@ namespace AIStudio.Wpf.DiagramDesigner
IsSelected = selected;
}
- public virtual void AddChild(BlockDesignerItemViewModel child)
+ public virtual void AddChild(BlockDesignerItemViewModel child, BlockItemsContainerInfo container)
{
child.RemoveFromSelection();
this.GetRootContainItem.AddToSelection(true, true);
@@ -108,7 +117,7 @@ namespace AIStudio.Wpf.DiagramDesigner
}));
}
- public virtual void RemoveChild(BlockDesignerItemViewModel child)
+ public virtual void RemoveChild(BlockDesignerItemViewModel child, BlockItemsContainerInfo container)
{
this.RemoveFromSelection();
@@ -120,6 +129,21 @@ namespace AIStudio.Wpf.DiagramDesigner
}));
}
+ public int BlockLevel
+ {
+ get
+ {
+ if (Prev == null)
+ {
+ return 0;
+ }
+ else
+ {
+ return Prev.BlockLevel + 1;
+ }
+ }
+ }
+
public BlockDesignerItemViewModel Prev
{
get
@@ -133,24 +157,45 @@ namespace AIStudio.Wpf.DiagramDesigner
get; set;
}
- public BlockItemsContainerInfo ParentContain
+ public bool CanContainTo
+ {
+ get; set;
+ } = true;
+
+ public BlockItemsContainerInfo ParentContainer
{
get; set;
}
- public ObservableCollection Contains
+ public ObservableCollection Containers
{
get; set;
} = new ObservableCollection();
- public BlockItemsContainerInfo FirstContain
+ public BlockItemsContainerInfo FirstContainer
{
get
{
- return Contains?.FirstOrDefault();
+ return Containers?.FirstOrDefault();
}
}
+ public BlockItemsContainerInfo SecondContainer
+ {
+ get
+ {
+ return Containers?.Skip(1)?.FirstOrDefault();
+ }
+ }
+
+ public BlockItemsContainerInfo ThirdContainer
+ {
+ get
+ {
+ return Containers?.Skip(2)?.FirstOrDefault();
+ }
+ }
+
public BlockDesignerItemViewModel GetFirst()
{
var parent = this.Next;
@@ -179,20 +224,20 @@ namespace AIStudio.Wpf.DiagramDesigner
public List GetAllContain()
{
- return Contains.SelectMany(p => p.GetAllContain(p.Children, true)).ToList();
+ return Containers.SelectMany(p => p.GetAllContain(p.Children, true)).ToList();
}
public BlockDesignerItemViewModel GetRootContainItem
{
get
{
- if (ParentContain == null)
+ if (ParentContainer == null)
{
return this;
}
else
{
- return ParentContain.DataItem.GetRootContainItem;
+ return ParentContainer.DataItem.GetRootContainItem;
}
}
}
diff --git a/AIStudio.Wpf.DiagramDesigner/ViewModels/IDiagramViewModel.cs b/AIStudio.Wpf.DiagramDesigner/ViewModels/IDiagramViewModel.cs
index 6696ca2..d8a60a7 100644
--- a/AIStudio.Wpf.DiagramDesigner/ViewModels/IDiagramViewModel.cs
+++ b/AIStudio.Wpf.DiagramDesigner/ViewModels/IDiagramViewModel.cs
@@ -365,8 +365,8 @@ namespace AIStudio.Wpf.DiagramDesigner
#region 公共方法
FullyCreatedConnectorInfo FindNearPortToAttachTo(ConnectionViewModel partialConnection, ConnectorVertexType connectorVertexType);
FullyCreatedConnectorInfo FindNearPortToAttachTo(ConnectionViewModel partialConnection);
- Tuple FindNearPortToAttachTo(BlockDesignerItemViewModel blockDesignerItemViewModel, bool isExist);
- BlockItemsContainerInfo FindNearContainerToAttachTo(BlockDesignerItemViewModel blockDesignerItemViewModel);
+ Tuple FindNearPortToAttachTo(BlockDesignerItemTempLink blockDesignerItemViewModel, bool isExist);
+ BlockItemsContainerInfo FindNearContainerToAttachTo(BlockDesignerItemTempLink blockDesignerItemViewModel);
void ClearNearPort();
void ClearNearContain();
void PreviewNearBlock(List blocks);
diff --git a/Directory.Build.Props b/Directory.Build.Props
index 2eece1a..99c3ca5 100644
--- a/Directory.Build.Props
+++ b/Directory.Build.Props
@@ -1,7 +1,7 @@
- net461;netcoreapp3.1;net5.0-windows;net6.0-windows
+ net461;net5.0-windows;net6.0-windows