diff --git a/AIStudio.Wpf.DiagramApp/ViewModels/MainWindowViewModel.cs b/AIStudio.Wpf.DiagramApp/ViewModels/MainWindowViewModel.cs index 0214b8f..3e4e033 100644 --- a/AIStudio.Wpf.DiagramApp/ViewModels/MainWindowViewModel.cs +++ b/AIStudio.Wpf.DiagramApp/ViewModels/MainWindowViewModel.cs @@ -63,16 +63,16 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels } } - private PageViewModel _diagramsViewModel; + private PageViewModel _pageViewModel; public PageViewModel PageViewModel { get { - return _diagramsViewModel; + return _pageViewModel; } set { - SetProperty(ref _diagramsViewModel, value); + SetProperty(ref _pageViewModel, value); } } diff --git a/AIStudio.Wpf.DiagramApp/ViewModels/MindViewModel.cs b/AIStudio.Wpf.DiagramApp/ViewModels/MindViewModel.cs index 8acd1a2..019f41a 100644 --- a/AIStudio.Wpf.DiagramApp/ViewModels/MindViewModel.cs +++ b/AIStudio.Wpf.DiagramApp/ViewModels/MindViewModel.cs @@ -26,7 +26,7 @@ namespace AIStudio.Wpf.Flowchart { foreach (var vm in DiagramViewModels) { - vm.InitLayoutCommand.Execute(null); + vm.Init(); } } diff --git a/AIStudio.Wpf.DiagramApp/ViewModels/PageViewModel.cs b/AIStudio.Wpf.DiagramApp/ViewModels/PageViewModel.cs index 338fdca..5f405c4 100644 --- a/AIStudio.Wpf.DiagramApp/ViewModels/PageViewModel.cs +++ b/AIStudio.Wpf.DiagramApp/ViewModels/PageViewModel.cs @@ -163,7 +163,7 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels { _service.SelectedItems = DiagramViewModel?.SelectedItems; - _service.SelectedItem = DiagramViewModel?.SelectedItems?.FirstOrDefault(); + _service.SelectedItem = DiagramViewModel?.SelectedItem; } var property = sender.GetType().GetProperty(e.PropertyName); diff --git a/AIStudio.Wpf.DiagramDesigner/ViewModels/AdditionViewModel/DiagramServicesProvider.cs b/AIStudio.Wpf.DiagramDesigner/ViewModels/AdditionViewModel/DiagramServicesProvider.cs index 14c8a12..90e08fb 100644 --- a/AIStudio.Wpf.DiagramDesigner/ViewModels/AdditionViewModel/DiagramServicesProvider.cs +++ b/AIStudio.Wpf.DiagramDesigner/ViewModels/AdditionViewModel/DiagramServicesProvider.cs @@ -114,13 +114,13 @@ namespace AIStudio.Wpf.DiagramDesigner } } - private DrawModeViewModel _drawModeViewModel; + private IDrawModeViewModel _drawModeViewModel; public IDrawModeViewModel DrawModeViewModel { get { return _drawModeViewModel; } } - private QuickThemeViewModel _quickThemeViewModel; + private IQuickThemeViewModel _quickThemeViewModel; public IQuickThemeViewModel QuickThemeViewModel { get { return _quickThemeViewModel; } diff --git a/AIStudio.Wpf.DiagramDesigner/ViewModels/AdditionViewModel/Interface/IDrawModeViewModel.cs b/AIStudio.Wpf.DiagramDesigner/ViewModels/AdditionViewModel/Interface/IDrawModeViewModel.cs index acfbf89..a4df196 100644 --- a/AIStudio.Wpf.DiagramDesigner/ViewModels/AdditionViewModel/Interface/IDrawModeViewModel.cs +++ b/AIStudio.Wpf.DiagramDesigner/ViewModels/AdditionViewModel/Interface/IDrawModeViewModel.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.ComponentModel; using System.Text; namespace AIStudio.Wpf.DiagramDesigner @@ -34,5 +35,6 @@ namespace AIStudio.Wpf.DiagramDesigner { get; set; } + event PropertyChangedEventHandler PropertyChanged; } } diff --git a/AIStudio.Wpf.DiagramDesigner/ViewModels/AdditionViewModel/Interface/IQuickThemeViewModel.cs b/AIStudio.Wpf.DiagramDesigner/ViewModels/AdditionViewModel/Interface/IQuickThemeViewModel.cs index 7164a1e..e48a620 100644 --- a/AIStudio.Wpf.DiagramDesigner/ViewModels/AdditionViewModel/Interface/IQuickThemeViewModel.cs +++ b/AIStudio.Wpf.DiagramDesigner/ViewModels/AdditionViewModel/Interface/IQuickThemeViewModel.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.ComponentModel; using System.Text; namespace AIStudio.Wpf.DiagramDesigner @@ -8,5 +9,7 @@ namespace AIStudio.Wpf.DiagramDesigner { QuickTheme[] QuickThemes { get; } QuickTheme QuickTheme { get; set; } + event PropertyChangedEventHandler PropertyChanged; + } } diff --git a/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/DiagramViewModel.cs b/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/DiagramViewModel.cs index eeda949..d788366 100644 --- a/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/DiagramViewModel.cs +++ b/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/DiagramViewModel.cs @@ -739,7 +739,7 @@ namespace AIStudio.Wpf.DiagramDesigner } private SimpleCommand _selectAllCommand; - public SimpleCommand SelectAllCommand + public virtual SimpleCommand SelectAllCommand { get { @@ -747,6 +747,15 @@ namespace AIStudio.Wpf.DiagramDesigner } } + private SimpleCommand _selectInverseCommand; + public virtual SimpleCommand SelectInverseCommand + { + get + { + return this._selectInverseCommand ?? (this._selectInverseCommand = new SimpleCommand(ExecuteEnable, ExecuteSelectInverseCommand)); + } + } + private SimpleCommand _selectItemCommand; public SimpleCommand SelectItemCommand { @@ -936,15 +945,6 @@ namespace AIStudio.Wpf.DiagramDesigner } } - private SimpleCommand _initLayoutCommand; - public SimpleCommand InitLayoutCommand - { - get - { - return this._initLayoutCommand ?? (this._initLayoutCommand = new SimpleCommand(ExecuteEnable, this.ExecutedInitLayoutCommand)); - } - } - private SimpleCommand _resetLayoutCommand; public SimpleCommand ResetLayoutCommand { @@ -1061,12 +1061,6 @@ namespace AIStudio.Wpf.DiagramDesigner } #endregion - - protected virtual void ExecutedInitLayoutCommand(object obj) - { - throw new NotImplementedException(); - } - protected virtual void ExecutedResetLayoutCommand(object obj) { throw new NotImplementedException(); @@ -1096,9 +1090,13 @@ namespace AIStudio.Wpf.DiagramDesigner private void Item_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e) { RaisePropertyChanged(sender, e.PropertyName); + if (e.PropertyName == "IsSelected") + { + RaisePropertyChanged(nameof(SelectedItem)); + } - //连续改变,需要特殊处理,不单独触发属性改变ReDo - if (sender is DesignerItemViewModelBase designer) + //连续改变,需要特殊处理,不单独触发属性改变ReDo + if (sender is DesignerItemViewModelBase designer) { if (designer.BeginDo) return; } @@ -1308,6 +1306,18 @@ namespace AIStudio.Wpf.DiagramDesigner } } + private void ExecuteSelectInverseCommand(object parameter) + { + foreach (var item in SelectedItems) + { + item.IsSelected = false; + } + foreach (var item in Items.Except(SelectedItems)) + { + item.IsSelected = true; + } + } + public void ExecuteSelectItemCommand(object parameter) { if (parameter is ISelectable selectable) @@ -2099,6 +2109,29 @@ namespace AIStudio.Wpf.DiagramDesigner Delete(parameter); } + protected void ExecuteSelectBrotherCommand(object parameter) + { + + } + + + protected void ExecuteSelectPearCommand(object parameter) + { + + } + + + protected void ExecuteSelectRouteCommand(object parameter) + { + + } + + + protected void ExecuteSelectChildCommand(object parameter) + { + + } + protected virtual bool Delete(object parameter) { List itemsToRemove; diff --git a/AIStudio.Wpf.DiagramDesigner/ViewModels/IDiagramViewModel.cs b/AIStudio.Wpf.DiagramDesigner/ViewModels/IDiagramViewModel.cs index c23a1ac..a052444 100644 --- a/AIStudio.Wpf.DiagramDesigner/ViewModels/IDiagramViewModel.cs +++ b/AIStudio.Wpf.DiagramDesigner/ViewModels/IDiagramViewModel.cs @@ -108,6 +108,10 @@ namespace AIStudio.Wpf.DiagramDesigner { get; } + SimpleCommand SelectInverseCommand + { + get; + } SimpleCommand SelectItemCommand { get; @@ -194,10 +198,6 @@ namespace AIStudio.Wpf.DiagramDesigner { get; } - SimpleCommand InitLayoutCommand - { - get; - } SimpleCommand ResetLayoutCommand { diff --git a/AIStudio.Wpf.Mind/Controls/MindEditor.xaml.cs b/AIStudio.Wpf.Mind/Controls/MindEditor.xaml.cs index 544a33a..52ac617 100644 --- a/AIStudio.Wpf.Mind/Controls/MindEditor.xaml.cs +++ b/AIStudio.Wpf.Mind/Controls/MindEditor.xaml.cs @@ -40,6 +40,7 @@ namespace AIStudio.Wpf.Mind.Controls _diagramViewModel.GridMarginSize = new Size(0, 0); _diagramViewModel.PageSizeType = PageSizeType.Custom; _diagramViewModel.PageSize = new SizeBase(1000d, 1000d); + _diagramViewModel.ShowGrid= false; _diagramViewModel.DefaultZoomBox = true; _diagramViewModel.PropertyChanged += DiagramViewModel_PropertyChanged; diff --git a/AIStudio.Wpf.Mind/Controls/ToolBoxControl.xaml b/AIStudio.Wpf.Mind/Controls/ToolBoxControl.xaml index 130d030..00ec2dd 100644 --- a/AIStudio.Wpf.Mind/Controls/ToolBoxControl.xaml +++ b/AIStudio.Wpf.Mind/Controls/ToolBoxControl.xaml @@ -11,6 +11,7 @@ + @@ -66,7 +67,7 @@ 插入上级主题 - - + @@ -465,7 +466,7 @@ FontFamily="{Binding}" /> - + - - - + + + @@ -532,12 +535,13 @@ - - - - - - + + + + + + +