diff --git a/AIStudio.Wpf.DiagramApp/AIStudio.Wpf.DiagramApp.csproj b/AIStudio.Wpf.DiagramApp/AIStudio.Wpf.DiagramApp.csproj
index 4b6e5f1..e3a48d0 100644
--- a/AIStudio.Wpf.DiagramApp/AIStudio.Wpf.DiagramApp.csproj
+++ b/AIStudio.Wpf.DiagramApp/AIStudio.Wpf.DiagramApp.csproj
@@ -124,6 +124,7 @@
+
diff --git a/AIStudio.Wpf.DiagramApp/App.xaml b/AIStudio.Wpf.DiagramApp/App.xaml
index 2f3f94d..8f026e9 100644
--- a/AIStudio.Wpf.DiagramApp/App.xaml
+++ b/AIStudio.Wpf.DiagramApp/App.xaml
@@ -12,6 +12,7 @@
+
diff --git a/AIStudio.Wpf.DiagramApp/ViewModels/FlowchartViewModel.cs b/AIStudio.Wpf.DiagramApp/ViewModels/FlowchartViewModel.cs
index ec70c36..b453e2f 100644
--- a/AIStudio.Wpf.DiagramApp/ViewModels/FlowchartViewModel.cs
+++ b/AIStudio.Wpf.DiagramApp/ViewModels/FlowchartViewModel.cs
@@ -13,7 +13,7 @@ using AIStudio.Wpf.DiagramDesigner;
namespace AIStudio.Wpf.Flowchart
{
- public class FlowchartViewModel : DiagramsViewModel
+ public class FlowchartViewModel : PageViewModel
{
public FlowchartViewModel(string title, string status, DiagramType diagramType) : base(title, status, diagramType)
{
diff --git a/AIStudio.Wpf.DiagramApp/ViewModels/LogicalViewModel.cs b/AIStudio.Wpf.DiagramApp/ViewModels/LogicalViewModel.cs
index 3514f1f..1c2edff 100644
--- a/AIStudio.Wpf.DiagramApp/ViewModels/LogicalViewModel.cs
+++ b/AIStudio.Wpf.DiagramApp/ViewModels/LogicalViewModel.cs
@@ -9,7 +9,7 @@ using AIStudio.Wpf.DiagramDesigner;
namespace AIStudio.Wpf.Logical
{
- public class LogicalViewModel : DiagramsViewModel
+ public class LogicalViewModel : PageViewModel
{
public LogicalViewModel(string title, string status, DiagramType diagramType) : base(title, status, diagramType)
{
diff --git a/AIStudio.Wpf.DiagramApp/ViewModels/MainWindowViewModel.cs b/AIStudio.Wpf.DiagramApp/ViewModels/MainWindowViewModel.cs
index c716752..605d051 100644
--- a/AIStudio.Wpf.DiagramApp/ViewModels/MainWindowViewModel.cs
+++ b/AIStudio.Wpf.DiagramApp/ViewModels/MainWindowViewModel.cs
@@ -29,9 +29,9 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels
{
ToolBoxViewModel = new ToolBoxViewModel();
- DiagramsViewModels = new ObservableCollection();
- DiagramsViewModels.Add(new DiagramsViewModel("新建-1", "*", DiagramType.Normal));
- DiagramsViewModel = DiagramsViewModels.FirstOrDefault();
+ DiagramsViewModels = new ObservableCollection();
+ DiagramsViewModels.Add(new PageViewModel("新建-1", "*", DiagramType.Normal));
+ PageViewModel = DiagramsViewModels.FirstOrDefault();
StandardColor = GenerateStandardGradients();
@@ -50,8 +50,8 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels
#region 属性
public ToolBoxViewModel ToolBoxViewModel { get; private set; }
- private ObservableCollection _diagramsViewModels;
- public ObservableCollection DiagramsViewModels
+ private ObservableCollection _diagramsViewModels;
+ public ObservableCollection DiagramsViewModels
{
get
{
@@ -63,8 +63,8 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels
}
}
- private DiagramsViewModel _diagramsViewModel;
- public DiagramsViewModel DiagramsViewModel
+ private PageViewModel _diagramsViewModel;
+ public PageViewModel PageViewModel
{
get
{
@@ -215,14 +215,14 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels
}
#endregion
- public Func NewItemFactory
+ public Func NewItemFactory
{
get
{
return
() =>
{
- return new DiagramsViewModel(NewNameHelper.GetNewName(DiagramsViewModels.Select(p => p.Title), "新建-"), "*", DiagramType.Normal);
+ return new PageViewModel(NewNameHelper.GetNewName(DiagramsViewModels.Select(p => p.Title), "新建-"), "*", DiagramType.Normal);
};
}
}
@@ -659,7 +659,7 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels
//here's how you can cancel stuff:
//args.Cancel();
- if (args.DragablzItem.DataContext is DiagramsViewModel viewModel)
+ if (args.DragablzItem.DataContext is PageViewModel viewModel)
{
viewModel.Dispose();
}
@@ -683,22 +683,22 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels
RaisePropertyChanged(e.PropertyName);
}
- if (DiagramsViewModel == null) return;
+ if (PageViewModel == null) return;
if (sender is IFontViewModel)
- DiagramsViewModel.SetFont(sender as IFontViewModel, e.PropertyName);
+ PageViewModel.SetFont(sender as IFontViewModel, e.PropertyName);
if (sender is IColorViewModel)
- DiagramsViewModel.SetColor(sender as IColorViewModel, e.PropertyName);
+ PageViewModel.SetColor(sender as IColorViewModel, e.PropertyName);
if (sender is IShapeViewModel)
- DiagramsViewModel.SetSharp(sender as IShapeViewModel, e.PropertyName);
+ PageViewModel.SetSharp(sender as IShapeViewModel, e.PropertyName);
if (sender is IQuickThemeViewModel)
- DiagramsViewModel.SetQuickItem(sender as IQuickThemeViewModel, e.PropertyName);
+ PageViewModel.SetQuickItem(sender as IQuickThemeViewModel, e.PropertyName);
if (sender is LockObject)
- DiagramsViewModel.LockAction(sender as LockObject, e.PropertyName);
+ PageViewModel.LockAction(sender as LockObject, e.PropertyName);
if (sender is DesignerItemViewModelBase designer
&& (e.PropertyName == nameof(designer.Angle)
@@ -707,14 +707,14 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels
|| e.PropertyName == nameof(designer.ScaleX)
|| e.PropertyName == nameof(designer.ScaleY)))
{
- DiagramsViewModel.SetPropertyValue(designer, e.PropertyName);
+ PageViewModel.SetPropertyValue(designer, e.PropertyName);
}
}
public bool KeyExecuted(KeyEventArgs e)
{
- if (DiagramsViewModel?.DiagramViewModel?.ExecuteShortcut(e) == true)
+ if (PageViewModel?.DiagramViewModel?.ExecuteShortcut(e) == true)
{
return true;
}
@@ -734,17 +734,17 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels
private void UnDoExecuted()
{
- DiagramsViewModel?.DiagramViewModel?.UndoCommand.Execute(null);
+ PageViewModel?.DiagramViewModel?.UndoCommand.Execute(null);
}
private void ReDoExecuted()
{
- DiagramsViewModel?.DiagramViewModel?.RedoCommand.Execute(null);
+ PageViewModel?.DiagramViewModel?.RedoCommand.Execute(null);
}
private void SelectedAllExecuted()
{
- DiagramsViewModel?.DiagramViewModel?.SelectAllCommand.Execute(null);
+ PageViewModel?.DiagramViewModel?.SelectAllCommand.Execute(null);
}
private void OpenExecuted(string para = null)
@@ -771,13 +771,13 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels
var viewmodel = DiagramsViewModels.FirstOrDefault(p => p.FileName == filename);
if (viewmodel != null)
{
- DiagramsViewModel = viewmodel;
+ PageViewModel = viewmodel;
MessageBox.Show("文档已经打开");
return;
}
- var diagram = DiagramsViewModel.OpenFile(filename, Path.GetExtension(filename));
- DiagramsViewModel flow;
+ var diagram = PageViewModel.OpenFile(filename, Path.GetExtension(filename));
+ PageViewModel flow;
if (diagram.DiagramType == DiagramType.FlowChart)
{
flow = new FlowchartViewModel(filename, diagram);
@@ -792,14 +792,14 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels
}
else
{
- flow = new DiagramsViewModel(filename, diagram);
+ flow = new PageViewModel(filename, diagram);
}
DiagramsViewModels.Add(flow);
- DiagramsViewModel = flow;
+ PageViewModel = flow;
if (string.IsNullOrEmpty(para))
{
- SaveHistory(DiagramsViewModel);
+ SaveHistory(PageViewModel);
}
else
{
@@ -810,39 +810,39 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels
private void SaveExecuted()
{
- if (DiagramsViewModel == null) return;
+ if (PageViewModel == null) return;
- if (DiagramsViewModel.SaveFile())
+ if (PageViewModel.SaveFile())
{
- SaveHistory(DiagramsViewModel);
+ SaveHistory(PageViewModel);
}
}
private void SaveAsExecuted()
{
- if (DiagramsViewModel == null) return;
+ if (PageViewModel == null) return;
- if (DiagramsViewModel.SaveFile(true))
+ if (PageViewModel.SaveFile(true))
{
- SaveHistory(DiagramsViewModel);
+ SaveHistory(PageViewModel);
}
}
- private void SaveHistory(DiagramsViewModel diagramsViewModel)
+ private void SaveHistory(PageViewModel diagramsViewModel)
{
- HistoryList.Remove(DiagramsViewModel.FileName);
- HistoryList.Insert(0, DiagramsViewModel.FileName);
+ HistoryList.Remove(PageViewModel.FileName);
+ HistoryList.Insert(0, PageViewModel.FileName);
File.WriteAllText(_history, JsonConvert.SerializeObject(HistoryList));
}
private bool Save_Enable()
{
- return DiagramsViewModel != null;
+ return PageViewModel != null;
}
private void PasteExecuted()
{
- DiagramsViewModel?.DiagramViewModel?.PasteCommand.Execute(null);
+ PageViewModel?.DiagramViewModel?.PasteCommand.Execute(null);
}
private bool Paste_Enabled()
@@ -852,32 +852,32 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels
private void CopyExecuted()
{
- DiagramsViewModel?.DiagramViewModel?.CopyCommand.Execute(null);
+ PageViewModel?.DiagramViewModel?.CopyCommand.Execute(null);
}
private bool Copy_Enabled()
{
- return DiagramsViewModel != null && DiagramsViewModel.DiagramViewModel != null && DiagramsViewModel.DiagramViewModel.SelectedItems.Count() > 0;
+ return PageViewModel != null && PageViewModel.DiagramViewModel != null && PageViewModel.DiagramViewModel.SelectedItems.Count() > 0;
}
private void DeleteExecuted()
{
- DiagramsViewModel?.DiagramViewModel?.DeleteCommand.Execute(null);
+ PageViewModel?.DiagramViewModel?.DeleteCommand.Execute(null);
}
private bool Delete_Enabled()
{
- return DiagramsViewModel != null && DiagramsViewModel.DiagramViewModel != null && DiagramsViewModel.DiagramViewModel.SelectedItems.Count() > 0;
+ return PageViewModel != null && PageViewModel.DiagramViewModel != null && PageViewModel.DiagramViewModel.SelectedItems.Count() > 0;
}
private void CutExecuted()
{
- DiagramsViewModel?.DiagramViewModel?.CutCommand.Execute(null);
+ PageViewModel?.DiagramViewModel?.CutCommand.Execute(null);
}
private bool Cut_Enabled()
{
- return DiagramsViewModel != null && DiagramsViewModel.DiagramViewModel != null && DiagramsViewModel.DiagramViewModel.SelectedItems.Count() > 0;
+ return PageViewModel != null && PageViewModel.DiagramViewModel != null && PageViewModel.DiagramViewModel.SelectedItems.Count() > 0;
}
private void FormatExecuted()
@@ -887,7 +887,7 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels
private bool Format_Enabled()
{
- return DiagramsViewModel != null && DiagramsViewModel.DiagramViewModel != null && DiagramsViewModel.DiagramViewModel.SelectedItems.Count() == 1;
+ return PageViewModel != null && PageViewModel.DiagramViewModel != null && PageViewModel.DiagramViewModel.SelectedItems.Count() == 1;
}
private void New_Executed(string type = "Normal")
@@ -895,22 +895,26 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels
IsOpenBackstage = false;
if (type == DiagramType.FlowChart.ToString())
{
- DiagramsViewModel = new FlowchartViewModel(NewNameHelper.GetNewName(DiagramsViewModels.Select(p => p.Title), "新建-"), "*", (DiagramType)Enum.Parse(typeof(DiagramType), type));
+ PageViewModel = new FlowchartViewModel(NewNameHelper.GetNewName(DiagramsViewModels.Select(p => p.Title), "新建-"), "*", (DiagramType)Enum.Parse(typeof(DiagramType), type));
}
else if (type == DiagramType.Logical.ToString())
{
- DiagramsViewModel = new LogicalViewModel(NewNameHelper.GetNewName(DiagramsViewModels.Select(p => p.Title), "新建-"), "*", (DiagramType)Enum.Parse(typeof(DiagramType), type));
+ PageViewModel = new LogicalViewModel(NewNameHelper.GetNewName(DiagramsViewModels.Select(p => p.Title), "新建-"), "*", (DiagramType)Enum.Parse(typeof(DiagramType), type));
}
else if (type == DiagramType.SFC.ToString())
{
- DiagramsViewModel = new SFCViewModel(NewNameHelper.GetNewName(DiagramsViewModels.Select(p => p.Title), "新建-"), "*", (DiagramType)Enum.Parse(typeof(DiagramType), type));
+ PageViewModel = new SFCViewModel(NewNameHelper.GetNewName(DiagramsViewModels.Select(p => p.Title), "新建-"), "*", (DiagramType)Enum.Parse(typeof(DiagramType), type));
+ }
+ else if (type == DiagramType.Mind.ToString())
+ {
+ PageViewModel = new MindViewModel(NewNameHelper.GetNewName(DiagramsViewModels.Select(p => p.Title), "新建-"), "*", (DiagramType)Enum.Parse(typeof(DiagramType), type));
}
else
{
- DiagramsViewModel = new DiagramsViewModel(NewNameHelper.GetNewName(DiagramsViewModels.Select(p => p.Title), "新建-"), "*", (DiagramType)Enum.Parse(typeof(DiagramType), type));
+ PageViewModel = new PageViewModel(NewNameHelper.GetNewName(DiagramsViewModels.Select(p => p.Title), "新建-"), "*", (DiagramType)Enum.Parse(typeof(DiagramType), type));
}
- DiagramsViewModels.Add(DiagramsViewModel);
+ DiagramsViewModels.Add(PageViewModel);
}
private void ExitExecuted()
@@ -920,112 +924,112 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels
private void GroupExecuted(object para)
{
- DiagramsViewModel?.DiagramViewModel?.GroupCommand.Execute(para);
+ PageViewModel?.DiagramViewModel?.GroupCommand.Execute(para);
}
private void UngroupExecuted(object para)
{
- DiagramsViewModel?.DiagramViewModel?.UngroupCommand.Execute(para);
+ PageViewModel?.DiagramViewModel?.UngroupCommand.Execute(para);
}
#region 布局
private void AlignTopExecuted(object para)
{
- DiagramsViewModel?.DiagramViewModel?.AlignTopCommand.Execute(para);
+ PageViewModel?.DiagramViewModel?.AlignTopCommand.Execute(para);
}
private void AlignVerticalCentersExecuted(object para)
{
- DiagramsViewModel?.DiagramViewModel?.AlignVerticalCentersCommand.Execute(para);
+ PageViewModel?.DiagramViewModel?.AlignVerticalCentersCommand.Execute(para);
}
private void AlignBottomExecuted(object para)
{
- DiagramsViewModel?.DiagramViewModel?.AlignBottomCommand.Execute(para);
+ PageViewModel?.DiagramViewModel?.AlignBottomCommand.Execute(para);
}
private void AlignLeftExecuted(object para)
{
- DiagramsViewModel?.DiagramViewModel?.AlignLeftCommand.Execute(para);
+ PageViewModel?.DiagramViewModel?.AlignLeftCommand.Execute(para);
}
private void AlignHorizontalCentersExecuted(object para)
{
- DiagramsViewModel?.DiagramViewModel?.AlignHorizontalCentersCommand.Execute(para);
+ PageViewModel?.DiagramViewModel?.AlignHorizontalCentersCommand.Execute(para);
}
private void AlignRightExecuted(object para)
{
- DiagramsViewModel?.DiagramViewModel?.AlignRightCommand.Execute(para);
+ PageViewModel?.DiagramViewModel?.AlignRightCommand.Execute(para);
}
private void BringForwardExecuted(object para)
{
- DiagramsViewModel?.DiagramViewModel?.BringForwardCommand.Execute(para);
+ PageViewModel?.DiagramViewModel?.BringForwardCommand.Execute(para);
}
private void BringToFrontExecuted(object para)
{
- DiagramsViewModel?.DiagramViewModel?.BringToFrontCommand.Execute(para);
+ PageViewModel?.DiagramViewModel?.BringToFrontCommand.Execute(para);
}
private void SendBackwardExecuted(object para)
{
- DiagramsViewModel?.DiagramViewModel?.SendBackwardCommand.Execute(para);
+ PageViewModel?.DiagramViewModel?.SendBackwardCommand.Execute(para);
}
private void SendToBackExecuted(object para)
{
- DiagramsViewModel?.DiagramViewModel?.SendBackwardCommand.Execute(para);
+ PageViewModel?.DiagramViewModel?.SendBackwardCommand.Execute(para);
}
private void DistributeHorizontalExecuted(object para)
{
- DiagramsViewModel?.DiagramViewModel?.DistributeHorizontalCommand.Execute(para);
+ PageViewModel?.DiagramViewModel?.DistributeHorizontalCommand.Execute(para);
}
private void DistributeVerticalExecuted(object para)
{
- DiagramsViewModel?.DiagramViewModel?.DistributeVerticalCommand.Execute(para);
+ PageViewModel?.DiagramViewModel?.DistributeVerticalCommand.Execute(para);
}
private void SelectAllExecuted(object para)
{
- DiagramsViewModel?.DiagramViewModel?.SelectAllCommand.Execute(para);
+ PageViewModel?.DiagramViewModel?.SelectAllCommand.Execute(para);
}
#endregion
private void CenterMoveExecuted(object para)
{
- DiagramsViewModel?.DiagramViewModel?.CenterMoveCommand.Execute(para);
+ PageViewModel?.DiagramViewModel?.CenterMoveCommand.Execute(para);
}
private void LeftMoveExecuted(object para = null)
{
- DiagramsViewModel?.DiagramViewModel?.LeftMoveCommand.Execute(para);
+ PageViewModel?.DiagramViewModel?.LeftMoveCommand.Execute(para);
}
private void RightMoveExecuted(object para = null)
{
- DiagramsViewModel?.DiagramViewModel?.RightMoveCommand.Execute(para);
+ PageViewModel?.DiagramViewModel?.RightMoveCommand.Execute(para);
}
private void UpMoveExecuted(object para = null)
{
- DiagramsViewModel?.DiagramViewModel?.UpMoveCommand.Execute(para);
+ PageViewModel?.DiagramViewModel?.UpMoveCommand.Execute(para);
}
private void DownMoveExecuted(object para = null)
{
- DiagramsViewModel?.DiagramViewModel?.DownMoveCommand.Execute(para);
+ PageViewModel?.DiagramViewModel?.DownMoveCommand.Execute(para);
}
private void SameWidthExecuted(object para)
{
- DiagramsViewModel?.DiagramViewModel?.SameWidthCommand.Execute(para);
+ PageViewModel?.DiagramViewModel?.SameWidthCommand.Execute(para);
}
private void SameHeightExecuted(object para)
{
- DiagramsViewModel?.DiagramViewModel?.SameHeightCommand.Execute(para);
+ PageViewModel?.DiagramViewModel?.SameHeightCommand.Execute(para);
}
private void SameSizeExecuted(object para)
{
- DiagramsViewModel?.DiagramViewModel?.SameSizeCommand.Execute(para);
+ PageViewModel?.DiagramViewModel?.SameSizeCommand.Execute(para);
}
private void SameAngleExecuted(object para)
{
- DiagramsViewModel?.DiagramViewModel?.SameAngleCommand.Execute(para);
+ PageViewModel?.DiagramViewModel?.SameAngleCommand.Execute(para);
}
private void LockExecuted(object para)
@@ -1040,62 +1044,62 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels
private void AddPageExecuted(object para)
{
- DiagramsViewModel?.AddPageExecuted(para);
+ PageViewModel?.AddPageExecuted(para);
}
private void AddCopyPageExecuted(object para)
{
- DiagramsViewModel?.AddCopyPageExecuted(para);
+ PageViewModel?.AddCopyPageExecuted(para);
}
private void RenamePageExecuted(object para)
{
- DiagramsViewModel?.RenamePageExecuted(para);
+ PageViewModel?.RenamePageExecuted(para);
}
private void EndRenamePageExecuted(object para)
{
- DiagramsViewModel?.EndRenamePageExecuted(para);
+ PageViewModel?.EndRenamePageExecuted(para);
}
private void DeletePageExecuted(object para)
{
- DiagramsViewModel?.DeletePageExecuted(para);
+ PageViewModel?.DeletePageExecuted(para);
}
private void AddImageExecuted(object para)
{
- DiagramsViewModel?.AddImageExecuted(para);
+ PageViewModel?.AddImageExecuted(para);
}
private void EditImageExecuted(object para)
{
- DiagramsViewModel?.EditImageExecuted(DiagramsViewModel.DiagramViewModel.SelectedItems?.FirstOrDefault());
+ PageViewModel?.EditImageExecuted(PageViewModel.DiagramViewModel.SelectedItems?.FirstOrDefault());
}
private void ResizeImageExecuted(object para)
{
- DiagramsViewModel?.ResizeImageExecuted(DiagramsViewModel.DiagramViewModel.SelectedItems?.FirstOrDefault());
+ PageViewModel?.ResizeImageExecuted(PageViewModel.DiagramViewModel.SelectedItems?.FirstOrDefault());
}
private void ResetImageExecuted(object para)
{
- DiagramsViewModel?.ResetImageExecuted(DiagramsViewModel.DiagramViewModel.SelectedItems?.FirstOrDefault());
+ PageViewModel?.ResetImageExecuted(PageViewModel.DiagramViewModel.SelectedItems?.FirstOrDefault());
}
private void AddVideoExectued(object para)
{
- DiagramsViewModel?.AddVideoExecuted(para);
+ PageViewModel?.AddVideoExecuted(para);
}
private void AddOutLineTextExecuted(object para)
{
- DiagramsViewModel?.AddOutLineTextExecuted(para);
+ PageViewModel?.AddOutLineTextExecuted(para);
}
private void AddBarcodeExecuted(object para)
{
- DiagramsViewModel?.AddBarcodeExecuted(para);
+ PageViewModel?.AddBarcodeExecuted(para);
}
private void SelectedColorExecuted(object para)
@@ -1104,9 +1108,9 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels
switch (ColorType)
{
- case Models.ColorType.Text: DiagramsViewModel?.SetFont(new FontViewModel() { FontColor = (Color)para }, "FontColor"); break;
- case Models.ColorType.Fill: DiagramsViewModel?.SetColor(new ColorViewModel() { FillColor = new ColorObject() { Color = (Color)para } }, "FillColor"); break;
- case Models.ColorType.Line: DiagramsViewModel?.SetColor(new ColorViewModel() { LineColor = new ColorObject() { Color = (Color)para } }, "LineColor"); break;
+ case Models.ColorType.Text: PageViewModel?.SetFont(new FontViewModel() { FontColor = (Color)para }, "FontColor"); break;
+ case Models.ColorType.Fill: PageViewModel?.SetColor(new ColorViewModel() { FillColor = new ColorObject() { Color = (Color)para } }, "FillColor"); break;
+ case Models.ColorType.Line: PageViewModel?.SetColor(new ColorViewModel() { LineColor = new ColorObject() { Color = (Color)para } }, "LineColor"); break;
}
}
diff --git a/AIStudio.Wpf.DiagramApp/ViewModels/MindViewModel.cs b/AIStudio.Wpf.DiagramApp/ViewModels/MindViewModel.cs
new file mode 100644
index 0000000..25012a8
--- /dev/null
+++ b/AIStudio.Wpf.DiagramApp/ViewModels/MindViewModel.cs
@@ -0,0 +1,59 @@
+using AIStudio.Wpf.DiagramApp.Models;
+using AIStudio.Wpf.DiagramApp.ViewModels;
+using AIStudio.Wpf.Flowchart.ViewModels;
+using System;
+using System.Collections.Generic;
+using System.Collections.ObjectModel;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Media;
+using AIStudio.Wpf.DiagramDesigner;
+using AIStudio.Wpf.Mind.ViewModels;
+
+namespace AIStudio.Wpf.Flowchart
+{
+ public class MindViewModel : PageViewModel
+ {
+ public MindViewModel(string title, string status, DiagramType diagramType) : base(title, status, diagramType)
+ {
+
+ }
+ public MindViewModel(string filename, DiagramDocument diagramDocument) : base(filename, diagramDocument)
+ {
+ _service.DrawModeViewModel.LineDrawMode = DrawMode.ConnectingLineSmooth;
+ }
+
+ protected override void InitDiagramViewModel()
+ {
+ base.InitDiagramViewModel();
+
+ DiagramViewModel.GridCellSize = new Size(100, 100);
+ _service.DrawModeViewModel.LineDrawMode = DrawMode.ConnectingLineSmooth;
+ DiagramViewModel.AllowDrop = false;
+ }
+
+ protected override void Init()
+ {
+ base.Init();
+
+ DesignerItemViewModelBase start = new MindLevel1Node() { Left = 100, Top = 0, ItemWidth = 80, ItemHeight = 40, Text = "思维导图" };
+ DiagramViewModel.DirectAddItemCommand.Execute(start);
+ DiagramViewModel?.CenterMoveCommand.Execute(start);
+
+ DiagramViewModel.ClearSelectedItemsCommand.Execute(null);
+
+ }
+
+ public override void Dispose()
+ {
+ base.Dispose();
+
+ foreach (var viewModel in DiagramViewModels)
+ {
+ FlowchartService.DisposeData(viewModel);
+ }
+ }
+ }
+}
diff --git a/AIStudio.Wpf.DiagramApp/ViewModels/DiagramsViewModel.cs b/AIStudio.Wpf.DiagramApp/ViewModels/PageViewModel.cs
similarity index 98%
rename from AIStudio.Wpf.DiagramApp/ViewModels/DiagramsViewModel.cs
rename to AIStudio.Wpf.DiagramApp/ViewModels/PageViewModel.cs
index c803081..3ef6179 100644
--- a/AIStudio.Wpf.DiagramApp/ViewModels/DiagramsViewModel.cs
+++ b/AIStudio.Wpf.DiagramApp/ViewModels/PageViewModel.cs
@@ -21,11 +21,11 @@ using AIStudio.Wpf.DiagramDesigner.Helpers;
namespace AIStudio.Wpf.DiagramApp.ViewModels
{
- public partial class DiagramsViewModel : BindableBase
+ public partial class PageViewModel : BindableBase
{
protected IDiagramServiceProvider _service { get { return DiagramServicesProvider.Instance.Provider; } }
- public DiagramsViewModel(string title, string status, DiagramType diagramType)
+ public PageViewModel(string title, string status, DiagramType diagramType)
{
Title = title;
Status = status;
@@ -39,7 +39,7 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels
Init();
}
- public DiagramsViewModel(string filename)
+ public PageViewModel(string filename)
{
FileName = filename;
string ext = Path.GetExtension(filename);
@@ -47,7 +47,7 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels
OpenFile(diagramDocument, ext);
}
- public DiagramsViewModel(string filename, DiagramDocument diagramDocument)
+ public PageViewModel(string filename, DiagramDocument diagramDocument)
{
FileName = filename;
string ext = Path.GetExtension(filename);
@@ -253,6 +253,7 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels
viewModel.PageSizeType = diagramItem.PageSizeType;
viewModel.PhysicalGridMarginSize = diagramItem.PhysicalGridMarginSize;
viewModel.GridColor = diagramItem.GridColor;
+ viewModel.AllowDrop = diagramItem.AllowDrop;
foreach (var diagramItemData in diagramItem.DesignerItems)
{
diff --git a/AIStudio.Wpf.DiagramApp/ViewModels/SFCViewModel.cs b/AIStudio.Wpf.DiagramApp/ViewModels/SFCViewModel.cs
index eb2bf87..3b89ef7 100644
--- a/AIStudio.Wpf.DiagramApp/ViewModels/SFCViewModel.cs
+++ b/AIStudio.Wpf.DiagramApp/ViewModels/SFCViewModel.cs
@@ -16,7 +16,7 @@ using AIStudio.Wpf.DiagramDesigner;
namespace AIStudio.Wpf.Flowchart
{
- public class SFCViewModel : DiagramsViewModel
+ public class SFCViewModel : PageViewModel
{
public SFCViewModel(string title, string status, DiagramType diagramType) : base(title, status, diagramType)
{
diff --git a/AIStudio.Wpf.DiagramApp/Views/MainWindow.xaml b/AIStudio.Wpf.DiagramApp/Views/MainWindow.xaml
index cb8752b..8038250 100644
--- a/AIStudio.Wpf.DiagramApp/Views/MainWindow.xaml
+++ b/AIStudio.Wpf.DiagramApp/Views/MainWindow.xaml
@@ -94,6 +94,9 @@
+
@@ -309,7 +312,7 @@
Header="撤销"
Icon="pack://application:,,,/AIStudio.Wpf.DiagramApp;component/Images/undo.png"
SizeDefinition="Middle,Small"
- Command="{Binding DiagramsViewModel.DiagramViewModel.UndoCommand}">
+ Command="{Binding PageViewModel.DiagramViewModel.UndoCommand}">
+ Command="{Binding PageViewModel.DiagramViewModel.RedoCommand}">
-
+
@@ -1478,7 +1481,7 @@
-
+
@@ -1495,7 +1498,7 @@
-
+
@@ -1518,21 +1521,21 @@
Width="190" />
-
+
-
+
-
+
-
+
-
+
@@ -1543,28 +1546,28 @@
-
+
-
+
-
+
-
+
@@ -1587,7 +1590,7 @@
-
+
@@ -1596,7 +1599,7 @@
-
+
@@ -1605,7 +1608,7 @@
-
+
@@ -1614,7 +1617,7 @@
-
+
@@ -1629,28 +1632,28 @@
-
+
-
+
-
+
-
+
@@ -1668,7 +1671,7 @@
-
+
@@ -1677,7 +1680,7 @@
-
+
@@ -1686,7 +1689,7 @@
-
+
@@ -1695,7 +1698,7 @@
-
+
@@ -1734,7 +1737,7 @@
-
-
鼠标位置(mm):
-
+
,
-
+
-
+
-
+
@@ -2051,7 +2054,7 @@
HorizontalAlignment="Right">
DesignerItems { get; set; } = new List();
diff --git a/AIStudio.Wpf.DiagramDesigner/UserControls/DiagramControl.xaml b/AIStudio.Wpf.DiagramDesigner/UserControls/DiagramControl.xaml
index b2e3ca1..cfdcfb9 100644
--- a/AIStudio.Wpf.DiagramDesigner/UserControls/DiagramControl.xaml
+++ b/AIStudio.Wpf.DiagramDesigner/UserControls/DiagramControl.xaml
@@ -836,7 +836,7 @@
GridMarginSize="{Binding GridMarginSize}"
GridColor="{Binding GridColor}"
Background="{Binding PageBackground,Converter={StaticResource ColorBrushConverter}}"
- AllowDrop="True">
+ AllowDrop="{Binding AllowDrop}">
diff --git a/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/ConnectionViewModel.cs b/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/ConnectionViewModel.cs
index 59f0fce..345e3e0 100644
--- a/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/ConnectionViewModel.cs
+++ b/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/ConnectionViewModel.cs
@@ -13,6 +13,9 @@ using SvgPathProperties;
namespace AIStudio.Wpf.DiagramDesigner
{
+ ///
+ /// DefaultLink
+ ///
public class ConnectionViewModel : SelectableDesignerItemViewModelBase
{
public ConnectionViewModel(FullyCreatedConnectorInfo sourceConnectorInfo, ConnectorInfoBase sinkConnectorInfo, DrawMode drawMode = DrawMode.ConnectingLineSmooth, RouterMode routerMode = AIStudio.Wpf.DiagramDesigner.RouterMode.RouterNormal) : this(null, sourceConnectorInfo, sinkConnectorInfo, drawMode, routerMode)
diff --git a/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/Connector/FullyCreatedConnectorInfo.cs b/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/Connector/FullyCreatedConnectorInfo.cs
index 3ccb3ff..dd4d056 100644
--- a/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/Connector/FullyCreatedConnectorInfo.cs
+++ b/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/Connector/FullyCreatedConnectorInfo.cs
@@ -199,6 +199,9 @@ namespace AIStudio.Wpf.DiagramDesigner
{
menuOptions.Clear();
var orientation = new CinchMenuItem("方向");
+ var none = new CinchMenuItem("无");
+ none.Command = MenuItemCommand;
+ none.CommandParameter = ConnectorOrientation.None;
var top = new CinchMenuItem("上");
top.Command = MenuItemCommand;
top.CommandParameter = ConnectorOrientation.Top;
@@ -211,6 +214,7 @@ namespace AIStudio.Wpf.DiagramDesigner
var right = new CinchMenuItem("右");
right.Command = MenuItemCommand;
right.CommandParameter = ConnectorOrientation.Right;
+ orientation.Children.Add(none);
orientation.Children.Add(top);
orientation.Children.Add(bottom);
orientation.Children.Add(left);
diff --git a/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/DiagramOption.cs b/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/DiagramOption.cs
index c2a87bd..6552ddc 100644
--- a/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/DiagramOption.cs
+++ b/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/DiagramOption.cs
@@ -8,12 +8,22 @@ namespace AIStudio.Wpf.DiagramDesigner
{
public class DiagramOption
{
+ public LayoutOption LayoutOption
+ {
+ get; set;
+ } = new LayoutOption();
+
public ShortcutOption ShortcutOption
{
get; set;
} = new ShortcutOption();
}
+ public class LayoutOption
+ {
+
+ }
+
public class ShortcutOption
{
[Description("Select All shortcut (CTRL+A by default)")]
diff --git a/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/DiagramViewModel.cs b/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/DiagramViewModel.cs
index 0c43f77..c520068 100644
--- a/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/DiagramViewModel.cs
+++ b/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/DiagramViewModel.cs
@@ -503,6 +503,11 @@ namespace AIStudio.Wpf.DiagramDesigner
get; set;
} = new DiagramOption();
+ public bool AllowDrop
+ {
+ get; set;
+ } = true;
+
private double OffsetX = 10;
private double OffsetY = 10;
#endregion
@@ -742,6 +747,7 @@ namespace AIStudio.Wpf.DiagramDesigner
PageSizeType = diagramItem.PageSizeType;
PhysicalGridMarginSize = diagramItem.PhysicalGridMarginSize;
GridColor = diagramItem.GridColor;
+ AllowDrop = diagramItem.AllowDrop;
}
public bool ExecuteEnable(object para)
diff --git a/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/GroupDesignerItemViewModel.cs b/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/GroupDesignerItemViewModel.cs
index 5713e0c..9bf13c8 100644
--- a/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/GroupDesignerItemViewModel.cs
+++ b/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/GroupDesignerItemViewModel.cs
@@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
+using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
@@ -10,6 +11,9 @@ using AIStudio.Wpf.DiagramDesigner.Models;
namespace AIStudio.Wpf.DiagramDesigner
{
+ ///
+ /// DefaultGroup
+ ///
public class GroupDesignerItemViewModel : DesignerItemViewModelBase
{
public GroupDesignerItemViewModel() : this(null)
diff --git a/AIStudio.Wpf.DiagramDesigner/ViewModels/IDiagramViewModel.cs b/AIStudio.Wpf.DiagramDesigner/ViewModels/IDiagramViewModel.cs
index b4382e2..31b3c4b 100644
--- a/AIStudio.Wpf.DiagramDesigner/ViewModels/IDiagramViewModel.cs
+++ b/AIStudio.Wpf.DiagramDesigner/ViewModels/IDiagramViewModel.cs
@@ -257,6 +257,10 @@ namespace AIStudio.Wpf.DiagramDesigner
{
get; set;
}
+ bool AllowDrop
+ {
+ get; set;
+ }
System.Windows.Point CurrentPoint
{
get; set;
diff --git a/AIStudio.Wpf.DiagramDesigner/ViewModels/SimpleViewModel/DefaultDesignerItemViewModel.cs b/AIStudio.Wpf.DiagramDesigner/ViewModels/SimpleViewModel/DefaultDesignerItemViewModel.cs
index 20e8f0f..7f790e8 100644
--- a/AIStudio.Wpf.DiagramDesigner/ViewModels/SimpleViewModel/DefaultDesignerItemViewModel.cs
+++ b/AIStudio.Wpf.DiagramDesigner/ViewModels/SimpleViewModel/DefaultDesignerItemViewModel.cs
@@ -1,10 +1,14 @@
using System;
+using System.ComponentModel;
using AIStudio.Wpf.DiagramDesigner;
using AIStudio.Wpf.DiagramDesigner.Models;
using AIStudio.Wpf.DiagramDesigner.Services;
namespace AIStudio.Wpf.DiagramDesigner
{
+ ///
+ /// DefaultNode
+ ///
public class DefaultDesignerItemViewModel : DesignerItemViewModelBase
{
public DefaultDesignerItemViewModel() : this(null)
diff --git a/AIStudio.Wpf.DiagramDesigner/ViewModels/SimpleViewModel/GifImageItemViewModel.cs b/AIStudio.Wpf.DiagramDesigner/ViewModels/SimpleViewModel/GifImageItemViewModel.cs
index 702ed8f..c702b5f 100644
--- a/AIStudio.Wpf.DiagramDesigner/ViewModels/SimpleViewModel/GifImageItemViewModel.cs
+++ b/AIStudio.Wpf.DiagramDesigner/ViewModels/SimpleViewModel/GifImageItemViewModel.cs
@@ -114,7 +114,7 @@ namespace AIStudio.Wpf.DiagramDesigner
private void ExecuteAddItemCommand(object parameter)
{
- FullyCreatedConnectorInfo connector = new FullyCreatedConnectorInfo(this, ConnectorOrientation.Top, true);
+ FullyCreatedConnectorInfo connector = new FullyCreatedConnectorInfo(this, ConnectorOrientation.None, true);
MouseButtonEventArgs mosueArg = ((EventToCommandArgs)parameter).EventArgs as MouseButtonEventArgs;
var position = mosueArg.GetPosition(((EventToCommandArgs)parameter).Sender as IInputElement);
connector.XRatio = (position.X - connector.ConnectorWidth / 2) / connector.DataItem.ItemWidth;
diff --git a/AIStudio.Wpf.DiagramDesigner/ViewModels/SimpleViewModel/TextDesignerItemViewModel.cs b/AIStudio.Wpf.DiagramDesigner/ViewModels/SimpleViewModel/TextDesignerItemViewModel.cs
index bd1bc40..3231918 100644
--- a/AIStudio.Wpf.DiagramDesigner/ViewModels/SimpleViewModel/TextDesignerItemViewModel.cs
+++ b/AIStudio.Wpf.DiagramDesigner/ViewModels/SimpleViewModel/TextDesignerItemViewModel.cs
@@ -5,6 +5,9 @@ using System.Windows.Media;
namespace AIStudio.Wpf.DiagramDesigner
{
+ ///
+ /// DefaultTextNode
+ ///
public class TextDesignerItemViewModel : DesignerItemViewModelBase
{
public TextDesignerItemViewModel() : this(null)
diff --git a/AIStudio.Wpf.Mind/AIStudio.Wpf.Mind.csproj b/AIStudio.Wpf.Mind/AIStudio.Wpf.Mind.csproj
index 536b337..208a974 100644
--- a/AIStudio.Wpf.Mind/AIStudio.Wpf.Mind.csproj
+++ b/AIStudio.Wpf.Mind/AIStudio.Wpf.Mind.csproj
@@ -19,4 +19,17 @@
+
+
+
+
+
+
+ $(DefaultXamlRuntime)
+
+
+ $(DefaultXamlRuntime)
+
+
+
diff --git a/AIStudio.Wpf.Mind/NodeLevel.cs b/AIStudio.Wpf.Mind/NodeLevel.cs
new file mode 100644
index 0000000..af1fd22
--- /dev/null
+++ b/AIStudio.Wpf.Mind/NodeLevel.cs
@@ -0,0 +1,13 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace AIStudio.Wpf.Mind
+{
+ public enum NodeLevel
+ {
+ Level1,
+ Level2,
+ Level3
+ }
+}
diff --git a/AIStudio.Wpf.Mind/Themes/Generic.xaml b/AIStudio.Wpf.Mind/Themes/Generic.xaml
new file mode 100644
index 0000000..1e2dd45
--- /dev/null
+++ b/AIStudio.Wpf.Mind/Themes/Generic.xaml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/AIStudio.Wpf.Mind/Themes/MindNode.xaml b/AIStudio.Wpf.Mind/Themes/MindNode.xaml
new file mode 100644
index 0000000..bde512e
--- /dev/null
+++ b/AIStudio.Wpf.Mind/Themes/MindNode.xaml
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/AIStudio.Wpf.Mind/ViewModels/MindNode.cs b/AIStudio.Wpf.Mind/ViewModels/MindNode.cs
new file mode 100644
index 0000000..8ea1976
--- /dev/null
+++ b/AIStudio.Wpf.Mind/ViewModels/MindNode.cs
@@ -0,0 +1,118 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Text;
+using AIStudio.Wpf.DiagramDesigner;
+using AIStudio.Wpf.DiagramDesigner.Models;
+
+namespace AIStudio.Wpf.Mind.ViewModels
+{
+ public class MindNode : DesignerItemViewModelBase
+ {
+ public MindNode(NodeLevel nodeLevel) : this(null, nodeLevel)
+ {
+
+ }
+
+ public MindNode(IDiagramViewModel root, NodeLevel nodeLevel) : base(root)
+ {
+ NodeLevel = nodeLevel;
+ }
+
+ public MindNode(IDiagramViewModel root, SelectableItemBase designer) : base(root, designer)
+ {
+ }
+
+ public MindNode(IDiagramViewModel root, SerializableItem serializableItem, string serializableType) : base(root, serializableItem, serializableType)
+ {
+ }
+
+ [Browsable(false)]
+ public NodeLevel NodeLevel
+ {
+ get; set;
+ }
+
+ private double _cornerRadius = 3;
+ public double CornerRadius
+ {
+ get
+ {
+ return _cornerRadius;
+ }
+ set
+ {
+ SetProperty(ref _cornerRadius, value);
+ }
+ }
+ }
+
+ public class MindLevel1Node : MindNode
+ {
+ public MindLevel1Node() : this(null)
+ {
+
+ }
+
+ public MindLevel1Node(IDiagramViewModel root) : base(root, NodeLevel.Level1)
+ {
+
+ }
+
+ public MindLevel1Node(IDiagramViewModel root, SelectableItemBase designer) : base(root, designer)
+ {
+
+ }
+
+ public MindLevel1Node(IDiagramViewModel root, SerializableItem serializableItem, string serializableType) : base(root, serializableItem, serializableType)
+ {
+
+ }
+ }
+
+ public class MindLevel2Node : MindNode
+ {
+ public MindLevel2Node() : this(null)
+ {
+
+ }
+
+ public MindLevel2Node(IDiagramViewModel root) : base(root, NodeLevel.Level2)
+ {
+
+ }
+
+ public MindLevel2Node(IDiagramViewModel root, SelectableItemBase designer) : base(root, designer)
+ {
+
+ }
+
+ public MindLevel2Node(IDiagramViewModel root, SerializableItem serializableItem, string serializableType) : base(root, serializableItem, serializableType)
+ {
+
+ }
+ }
+
+ public class MindLevel3Node : MindNode
+ {
+ public MindLevel3Node() : this(null)
+ {
+
+ }
+
+ public MindLevel3Node(IDiagramViewModel root) : base(root, NodeLevel.Level2)
+ {
+
+ }
+
+ public MindLevel3Node(IDiagramViewModel root, SelectableItemBase designer) : base(root, designer)
+ {
+
+ }
+
+ public MindLevel3Node(IDiagramViewModel root, SerializableItem serializableItem, string serializableType) : base(root, serializableItem, serializableType)
+ {
+
+ }
+ }
+}