From 71ed33f881ccb060654cf1b4dcd8134074150ebd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=89=BE=E7=AB=B9?= Date: Mon, 20 Feb 2023 23:01:26 +0800 Subject: [PATCH] =?UTF-8?q?mind=E7=BB=A7=E7=BB=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AIStudio.Wpf.DiagramApp/Views/MainWindow.xaml | 41 +++- .../UserControls/ConnectorContainer.xaml.cs | 13 +- .../BaseViewModel/ConnectionViewModel.cs | 11 +- AIStudio.Wpf.Mind/Themes/MindNode.xaml | 17 +- AIStudio.Wpf.Mind/ViewModels/MindNode.cs | 211 +++++++++++++++--- 5 files changed, 247 insertions(+), 46 deletions(-) diff --git a/AIStudio.Wpf.DiagramApp/Views/MainWindow.xaml b/AIStudio.Wpf.DiagramApp/Views/MainWindow.xaml index 97e9126..6ff6171 100644 --- a/AIStudio.Wpf.DiagramApp/Views/MainWindow.xaml +++ b/AIStudio.Wpf.DiagramApp/Views/MainWindow.xaml @@ -18,6 +18,7 @@ xmlns:drop="urn:gong-wpf-dragdrop" xmlns:i="http://schemas.microsoft.com/xaml/behaviors" xmlns:converter="clr-namespace:AIStudio.Wpf.DiagramDesigner.Additionals.Converters;assembly=AIStudio.Wpf.DiagramDesigner.Additionals" + xmlns:mimd="clr-namespace:AIStudio.Wpf.Mind;assembly=AIStudio.Wpf.Mind" xmlns:viewmodel="clr-namespace:AIStudio.Wpf.DiagramApp.ViewModels" Style="{StaticResource RibbonWindowStyle}" Icon="pack://application:,,,/AIStudio.Wpf.DiagramApp;component/Icons/App.ico" @@ -844,7 +845,7 @@ - + @@ -1142,7 +1143,7 @@ Format="0 pt" /> - + @@ -1195,7 +1196,7 @@ - + @@ -1239,7 +1240,7 @@ - + @@ -1573,7 +1574,7 @@ - + - + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/AIStudio.Wpf.DiagramDesigner/UserControls/ConnectorContainer.xaml.cs b/AIStudio.Wpf.DiagramDesigner/UserControls/ConnectorContainer.xaml.cs index ee59ff4..f1b76c3 100644 --- a/AIStudio.Wpf.DiagramDesigner/UserControls/ConnectorContainer.xaml.cs +++ b/AIStudio.Wpf.DiagramDesigner/UserControls/ConnectorContainer.xaml.cs @@ -32,16 +32,19 @@ namespace AIStudio.Wpf.DiagramDesigner { if (e.Action == NotifyCollectionChangedAction.Add) { - foreach(var item in e.NewItems) + foreach (var item in e.NewItems) { FullyCreatedConnectorInfo vm = item as FullyCreatedConnectorInfo; var connector = ItemContainerGenerator.ContainerFromItem(item) as ContentPresenter; - - Canvas.SetLeft(connector, vm.DataItem.ItemWidth * vm.XRatio - vm.ConnectorWidth / 2); - Canvas.SetTop(connector, vm.DataItem.ItemHeight * vm.YRatio - vm.ConnectorHeight / 2); + if (connector != null) + { + Canvas.SetLeft(connector, vm.DataItem.ItemWidth * vm.XRatio - vm.ConnectorWidth / 2); + Canvas.SetTop(connector, vm.DataItem.ItemHeight * vm.YRatio - vm.ConnectorHeight / 2); + } } - //SetConnectorLocation(); + } + } void ConnectorContainer_SizeChanged(object sender, SizeChangedEventArgs e) diff --git a/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/ConnectionViewModel.cs b/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/ConnectionViewModel.cs index 1ebfc52..d9c4800 100644 --- a/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/ConnectionViewModel.cs +++ b/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/ConnectionViewModel.cs @@ -464,7 +464,16 @@ namespace AIStudio.Wpf.DiagramDesigner Labels.FirstOrDefault()?.AddToSelection(false); } break; - + case nameof(RouterMode): + var routetype = GlobalType.AllTypes.Where(p => typeof(IRouter).IsAssignableFrom(p)).FirstOrDefault(p => p.Name == RouterMode); + Router = routetype != null ? (System.Activator.CreateInstance(routetype) as IRouter) : new RouterNormal(); + UpdatePathGeneratorResult(); + break; + case nameof(PathMode): + var pathGeneratortype = GlobalType.AllTypes.Where(p => typeof(IPathGenerator).IsAssignableFrom(p)).FirstOrDefault(p => p.Name == PathMode); + PathGenerator = pathGeneratortype != null ? (System.Activator.CreateInstance(pathGeneratortype) as IPathGenerator) : new ConnectingLineSmooth(); + UpdatePathGeneratorResult(); + break; } } else if (sender is ShapeViewModel) diff --git a/AIStudio.Wpf.Mind/Themes/MindNode.xaml b/AIStudio.Wpf.Mind/Themes/MindNode.xaml index b2eef5f..44eac42 100644 --- a/AIStudio.Wpf.Mind/Themes/MindNode.xaml +++ b/AIStudio.Wpf.Mind/Themes/MindNode.xaml @@ -87,8 +87,15 @@ CornerRadius="{Binding CornerRadius,Converter={StaticResource DoubleToCornerRadius}}"> - + + + + + + + + @@ -115,8 +122,14 @@ - + + + + + + +