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)