diff --git a/AIStudio.Wpf.DiagramApp/Views/MainWindow.xaml b/AIStudio.Wpf.DiagramApp/Views/MainWindow.xaml
index 225d59f..c0a166f 100644
--- a/AIStudio.Wpf.DiagramApp/Views/MainWindow.xaml
+++ b/AIStudio.Wpf.DiagramApp/Views/MainWindow.xaml
@@ -1499,7 +1499,7 @@
-
+
diff --git a/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/DiagramViewModel.cs b/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/DiagramViewModel.cs
index 2d68145..48dab3c 100644
--- a/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/DiagramViewModel.cs
+++ b/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/DiagramViewModel.cs
@@ -592,7 +592,7 @@ namespace AIStudio.Wpf.DiagramDesigner
{
get
{
- return _searchText;
+ return _searchInfo;
}
set
{
@@ -2645,7 +2645,7 @@ namespace AIStudio.Wpf.DiagramDesigner
private void ExecutedSearchDownCommand(object obj)
{
- if (obj != null)
+ if (!string.IsNullOrEmpty(obj?.ToString()))
{
var selecteddesign = SelectedItem as DesignerItemViewModelBase;
var searchitems = Items.OfType().Where(p => p.Text?.Contains(obj.ToString()) == true).ToList();
diff --git a/AIStudio.Wpf.Mind/Controls/ToolBoxControl.xaml b/AIStudio.Wpf.Mind/Controls/ToolBoxControl.xaml
index 315bbc9..189ff8e 100644
--- a/AIStudio.Wpf.Mind/Controls/ToolBoxControl.xaml
+++ b/AIStudio.Wpf.Mind/Controls/ToolBoxControl.xaml
@@ -679,7 +679,7 @@
-
+
diff --git a/AIStudio.Wpf.Mind/Helpers/DirectoryLayout.cs b/AIStudio.Wpf.Mind/Helpers/DirectoryLayout.cs
index f385005..92b0ce9 100644
--- a/AIStudio.Wpf.Mind/Helpers/DirectoryLayout.cs
+++ b/AIStudio.Wpf.Mind/Helpers/DirectoryLayout.cs
@@ -138,8 +138,10 @@ namespace AIStudio.Wpf.Mind.Helpers
{
if (mindNode.NodeLevel == 0)
{
- double left = mindNode.MiddlePosition.X - Math.Max(mindNode.DesiredSize.Width, mindNode.Children.SumOrDefault(p => p.DesiredSize.Width)) / 2;
- double top = mindNode.MiddlePosition.Y + mindNode.ItemHeight / 2 + mindNode.Spacing.Height;
+ mindNode.DesiredPosition = mindNode.Position;
+
+ double left = mindNode.DesiredPosition.X + mindNode.ItemWidth / 2 - Math.Max(mindNode.DesiredSize.Width, mindNode.Children.SumOrDefault(p => p.DesiredSize.Width)) / 2;
+ double top = mindNode.DesiredPosition.Y + mindNode.ItemHeight + mindNode.Spacing.Height;
if (mindNode.Children?.Count > 0)
{
foreach (var child in mindNode.Children)
@@ -159,14 +161,13 @@ namespace AIStudio.Wpf.Mind.Helpers
connector?.SetVisible(child.Visible);
}
}
-
- mindNode.DesiredPosition = mindNode.Position;
+
mindNode.Offset = new PointBase();//修正后归0
}
else
{
- double left = mindNode.DesiredMiddlePosition.X;
- double top = mindNode.DesiredMiddlePosition.Y + mindNode.ItemHeight / 2 + mindNode.Spacing.Height;
+ double left = mindNode.DesiredPosition.X + mindNode.ItemWidth / 2;
+ double top = mindNode.DesiredPosition.Y + mindNode.ItemHeight + mindNode.Spacing.Height;
if (mindNode.Children?.Count > 0)
{
foreach (var child in mindNode.Children)
diff --git a/AIStudio.Wpf.Mind/Helpers/FishBoneLayout.cs b/AIStudio.Wpf.Mind/Helpers/FishBoneLayout.cs
index d3de693..cf07058 100644
--- a/AIStudio.Wpf.Mind/Helpers/FishBoneLayout.cs
+++ b/AIStudio.Wpf.Mind/Helpers/FishBoneLayout.cs
@@ -176,9 +176,11 @@ namespace AIStudio.Wpf.Mind.Helpers
{
if (mindNode.NodeLevel == 0)
{
+ mindNode.DesiredPosition = mindNode.Position;
+
var tops = mindNode.Children.Where(p => p.ConnectorOrientation == ConnectorOrientation.BottomLeft).ToList();
- double topleft = mindNode.MiddlePosition.X + mindNode.ItemWidth / 2 + mindNode.Spacing.Width;
- double toptop = mindNode.MiddlePosition.Y - mindNode.ItemHeight / 2 - mindNode.Spacing.Height;
+ double topleft = mindNode.DesiredPosition.X + mindNode.ItemWidth + mindNode.Spacing.Width;
+ double toptop = mindNode.DesiredPosition.Y - mindNode.Spacing.Height;
if (mindNode.Children?.Count > 0)
{
@@ -201,8 +203,8 @@ namespace AIStudio.Wpf.Mind.Helpers
var bottomoffset = mindNode.Spacing.Width / 2;
var bottoms = mindNode.Children.Where(p => p.ConnectorOrientation == ConnectorOrientation.TopLeft).ToList();
- double bottomleft = mindNode.MiddlePosition.X + mindNode.ItemWidth / 2 + mindNode.Spacing.Width + bottomoffset;
- double bottomtop = mindNode.MiddlePosition.Y + mindNode.ItemHeight / 2 + mindNode.Spacing.Height;
+ double bottomleft = mindNode.DesiredPosition.X + mindNode.ItemWidth + mindNode.Spacing.Width + bottomoffset;
+ double bottomtop = mindNode.DesiredPosition.Y + mindNode.ItemHeight + mindNode.Spacing.Height;
if (mindNode.Children?.Count > 0)
{
@@ -222,8 +224,7 @@ namespace AIStudio.Wpf.Mind.Helpers
connector?.SetVisible(child.Visible);
}
}
-
- mindNode.DesiredPosition = mindNode.Position;
+
mindNode.Offset = new PointBase();//修正后归0
}
else if (mindNode.NodeLevel == 1)
@@ -281,8 +282,8 @@ namespace AIStudio.Wpf.Mind.Helpers
{
if (mindNode.GetLevel1Node().ConnectorOrientation == ConnectorOrientation.BottomLeft)
{
- double left = mindNode.DesiredMiddlePosition.X;
- double top = mindNode.DesiredMiddlePosition.Y + mindNode.ItemHeight / 2 + mindNode.Spacing.Height;
+ double left = mindNode.DesiredPosition.X + mindNode.ItemWidth / 2;
+ double top = mindNode.DesiredPosition.Y + mindNode.ItemHeight + mindNode.Spacing.Height;
if (mindNode.Children?.Count > 0)
{
foreach (var child in mindNode.Children)
@@ -304,8 +305,8 @@ namespace AIStudio.Wpf.Mind.Helpers
}
else
{
- double left = mindNode.DesiredMiddlePosition.X;
- double bottom = mindNode.DesiredMiddlePosition.Y - mindNode.ItemHeight / 2 - mindNode.Spacing.Height;
+ double left = mindNode.DesiredPosition.X + mindNode.ItemWidth / 2;
+ double bottom = mindNode.DesiredPosition.Y - mindNode.Spacing.Height;
if (mindNode.Children?.Count > 0)
{
foreach (var child in mindNode.Children)
diff --git a/AIStudio.Wpf.Mind/Helpers/LogicalLayout.cs b/AIStudio.Wpf.Mind/Helpers/LogicalLayout.cs
index 9f82c85..2ca8f9a 100644
--- a/AIStudio.Wpf.Mind/Helpers/LogicalLayout.cs
+++ b/AIStudio.Wpf.Mind/Helpers/LogicalLayout.cs
@@ -131,8 +131,8 @@ namespace AIStudio.Wpf.Mind.Helpers
mindNode.DesiredPosition = mindNode.Position;
}
- double left = mindNode.DesiredMiddlePosition.X + mindNode.ItemWidth / 2 + mindNode.Spacing.Width;
- double top = mindNode.DesiredMiddlePosition.Y - Math.Min(mindNode.DesiredSize.Height, mindNode.Children.SumOrDefault(p => p.DesiredSize.Height)) / 2;
+ double left = mindNode.DesiredPosition.X + mindNode.ItemWidth + mindNode.Spacing.Width;
+ double top = mindNode.DesiredPosition.Y + mindNode.ItemHeight / 2 - Math.Min(mindNode.DesiredSize.Height, mindNode.Children.SumOrDefault(p => p.DesiredSize.Height)) / 2;
if (mindNode.Children?.Count > 0)
{
foreach (var child in mindNode.Children)
diff --git a/AIStudio.Wpf.Mind/Helpers/MindLayout.cs b/AIStudio.Wpf.Mind/Helpers/MindLayout.cs
index df94ccb..fa884f1 100644
--- a/AIStudio.Wpf.Mind/Helpers/MindLayout.cs
+++ b/AIStudio.Wpf.Mind/Helpers/MindLayout.cs
@@ -143,11 +143,13 @@ namespace AIStudio.Wpf.Mind.Helpers
{
if (mindNode.NodeLevel == 0)
{
+ mindNode.DesiredPosition = mindNode.Position;
+
if (mindNode.Children?.Count > 0)
{
var rights = mindNode.Children.Where(p => p.ConnectorOrientation == ConnectorOrientation.Left).ToList();
- double left = mindNode.MiddlePosition.X + mindNode.ItemWidth / 2 + mindNode.Spacing.Width;
- double lefttop = mindNode.MiddlePosition.Y - Math.Min(mindNode.DesiredSize.Height, rights.SumOrDefault(p => p.DesiredSize.Height)) / 2;
+ double left = mindNode.DesiredPosition.X + mindNode.ItemWidth + mindNode.Spacing.Width;
+ double lefttop = mindNode.DesiredPosition.Y + mindNode.ItemHeight / 2 - Math.Min(mindNode.DesiredSize.Height, rights.SumOrDefault(p => p.DesiredSize.Height)) / 2;
foreach (var child in rights)
{
child.Offset = new PointBase(child.Offset.X - child.RootNode.Offset.X, child.Offset.Y - child.RootNode.Offset.Y);
@@ -166,8 +168,8 @@ namespace AIStudio.Wpf.Mind.Helpers
}
var lefts = mindNode.Children.Where(p => p.ConnectorOrientation == ConnectorOrientation.Right).ToList();
- double right = mindNode.MiddlePosition.X - mindNode.ItemWidth / 2 - mindNode.Spacing.Width;
- double righttop = mindNode.MiddlePosition.Y - Math.Min(mindNode.DesiredSize.Height, lefts.SumOrDefault(p => p.DesiredSize.Height)) / 2;
+ double right = mindNode.DesiredPosition.X - mindNode.Spacing.Width;
+ double righttop = mindNode.DesiredPosition.Y + mindNode.ItemHeight / 2 - Math.Min(mindNode.DesiredSize.Height, lefts.SumOrDefault(p => p.DesiredSize.Height)) / 2;
foreach (var child in lefts)
{
child.Offset = new PointBase(child.Offset.X - child.RootNode.Offset.X, child.Offset.Y - child.RootNode.Offset.Y);
@@ -184,16 +186,15 @@ namespace AIStudio.Wpf.Mind.Helpers
connector?.SetVisible(child.Visible);
}
}
-
- mindNode.DesiredPosition = mindNode.Position;
+
mindNode.Offset = new PointBase();//修正后归0
}
else
{
if (mindNode.GetLevel1Node().ConnectorOrientation == ConnectorOrientation.Left)
{
- double left = mindNode.DesiredMiddlePosition.X + mindNode.ItemWidth / 2 + mindNode.Spacing.Width;
- double top = mindNode.DesiredMiddlePosition.Y - Math.Min(mindNode.DesiredSize.Height, mindNode.Children.SumOrDefault(p => p.DesiredSize.Height)) / 2;
+ double left = mindNode.DesiredPosition.X + mindNode.ItemWidth + mindNode.Spacing.Width;
+ double top = mindNode.DesiredPosition.Y + mindNode.ItemHeight / 2 - Math.Min(mindNode.DesiredSize.Height, mindNode.Children.SumOrDefault(p => p.DesiredSize.Height)) / 2;
if (mindNode.Children?.Count > 0)
{
foreach (var child in mindNode.Children)
@@ -215,8 +216,8 @@ namespace AIStudio.Wpf.Mind.Helpers
}
else
{
- double right = mindNode.DesiredMiddlePosition.X - mindNode.ItemWidth / 2 - mindNode.Spacing.Width;
- double top = mindNode.DesiredMiddlePosition.Y - Math.Min(mindNode.DesiredSize.Height, mindNode.Children.SumOrDefault(p => p.DesiredSize.Height)) / 2;
+ double right = mindNode.DesiredPosition.X - mindNode.Spacing.Width;
+ double top = mindNode.DesiredPosition.Y + mindNode.ItemHeight / 2 - Math.Min(mindNode.DesiredSize.Height, mindNode.Children.SumOrDefault(p => p.DesiredSize.Height)) / 2;
if (mindNode.Children?.Count > 0)
{
foreach (var child in mindNode.Children)
diff --git a/AIStudio.Wpf.Mind/Helpers/OrganizationalLayout.cs b/AIStudio.Wpf.Mind/Helpers/OrganizationalLayout.cs
index 451264a..f579490 100644
--- a/AIStudio.Wpf.Mind/Helpers/OrganizationalLayout.cs
+++ b/AIStudio.Wpf.Mind/Helpers/OrganizationalLayout.cs
@@ -133,8 +133,8 @@ namespace AIStudio.Wpf.Mind.Helpers
mindNode.DesiredPosition = mindNode.Position;
}
- double left = mindNode.DesiredMiddlePosition.X - Math.Max(mindNode.DesiredSize.Width, mindNode.Children.SumOrDefault(p => p.DesiredSize.Width)) / 2;
- double top = mindNode.DesiredMiddlePosition.Y + mindNode.ItemHeight / 2 + mindNode.Spacing.Height;
+ double left = mindNode.DesiredPosition.X + mindNode.ItemWidth / 2 - Math.Max(mindNode.DesiredSize.Width, mindNode.Children.SumOrDefault(p => p.DesiredSize.Width)) / 2;
+ double top = mindNode.DesiredPosition.Y + mindNode.ItemHeight + mindNode.Spacing.Height;
if (mindNode.Children?.Count > 0)
{
foreach (var child in mindNode.Children)