From f995722828d2c73270abdd874d42d654c3b27c58 Mon Sep 17 00:00:00 2001 From: kwai Date: Thu, 11 May 2023 19:14:39 +0800 Subject: [PATCH] =?UTF-8?q?DiagramOption=20LayoutOption=20=E5=8F=82?= =?UTF-8?q?=E6=95=B0=E6=95=B4=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ViewModels/FlowchartViewModel.cs | 8 +- .../ViewModels/LogicalViewModel.cs | 10 +- .../ViewModels/MindViewModel.cs | 6 +- .../ViewModels/PageViewModel.cs | 58 +-- .../ViewModels/SFCViewModel.cs | 8 +- .../ViewModels/ScriptViewModel.cs | 4 +- AIStudio.Wpf.DiagramApp/Views/MainWindow.xaml | 58 +-- .../Models/Serializables/DiagramItem.cs | 20 +- .../PathGenerators/PathGenerators.Boundary.cs | 4 +- .../UserControls/DiagramControl.xaml | 32 +- .../DesignerItemViewModelBase.cs | 32 +- .../ViewModels/BaseViewModel/DiagramOption.cs | 347 +++++++++++++++- .../BaseViewModel/DiagramViewModel.cs | 375 +----------------- .../ViewModels/IDiagramViewModel.cs | 65 +-- .../ReconnectLinksToClosestPortsViewModel.cs | 4 +- .../Animations/LineAnimationViewModel.cs | 4 +- .../Animations/PathAnimationViewModel.cs | 4 +- .../Customization/CustomGroupViewModel.cs | 4 +- .../Customization/CustomLinkViewModel.cs | 4 +- .../Customization/CustomNodeViewModel.cs | 4 +- .../Customization/CustomPortViewModel.cs | 4 +- .../ViewModels/DragAndDropViewModel.cs | 14 +- .../ViewModels/EventsViewModel.cs | 4 +- .../Groups/CustomDefinedGroupViewModel.cs | 4 +- .../Groups/CustomShortcutGroupViewModel.cs | 4 +- .../ViewModels/Groups/GroupViewModel.cs | 4 +- .../ViewModels/Links/LabelsViewModel.cs | 4 +- .../ViewModels/Links/MarkersViewModel.cs | 4 +- .../Links/PathGeneratorsViewModel.cs | 8 +- .../ViewModels/Links/RoutersViewModel.cs | 4 +- .../ViewModels/Links/SnappingViewModel.cs | 7 +- .../ViewModels/Links/VerticesViewModel.cs | 4 +- .../ViewModels/LockedViewModel.cs | 8 +- .../Nodes/CustomDefinedNodeViewModel.cs | 4 +- .../ViewModels/Nodes/GradientNodeViewModel.cs | 4 +- .../ViewModels/Nodes/RotateViewModel.cs | 4 +- .../ViewModels/Nodes/SvgViewModel.cs | 8 +- .../ViewModels/PerformanceViewModel.cs | 4 +- .../ViewModels/PortlessLinksViewModel.cs | 4 +- .../ViewModels/Ports/ColoredPortViewModel.cs | 4 +- .../ViewModels/Ports/InnerPortViewModel.cs | 4 +- .../ViewModels/SimpleViewModel.cs | 4 +- .../ViewModels/SnapToGridViewModel.cs | 8 +- .../ViewModels/Texts/AlignmentViewModel.cs | 4 +- .../ViewModels/Texts/ColorTextViewModel.cs | 4 +- .../ViewModels/Texts/FontSizeViewModel.cs | 4 +- .../ViewModels/Texts/OutlineTextViewModel.cs | 4 +- .../ViewModels/Texts/TextViewModel.cs | 4 +- .../Controls/FlowchartEditor.xaml.cs | 14 +- .../Controls/MindEditor.xaml.cs | 8 +- .../ViewModels/MindDiagramViewModel.cs | 12 +- 51 files changed, 589 insertions(+), 637 deletions(-) diff --git a/AIStudio.Wpf.DiagramApp/ViewModels/FlowchartViewModel.cs b/AIStudio.Wpf.DiagramApp/ViewModels/FlowchartViewModel.cs index 3294b14..68dc726 100644 --- a/AIStudio.Wpf.DiagramApp/ViewModels/FlowchartViewModel.cs +++ b/AIStudio.Wpf.DiagramApp/ViewModels/FlowchartViewModel.cs @@ -32,10 +32,10 @@ namespace AIStudio.Wpf.Flowchart { base.InitDiagramViewModel(); - DiagramViewModel.ShowGrid = true; - DiagramViewModel.GridCellSize = new Size(100, 100); - DiagramViewModel.CellHorizontalAlignment = CellHorizontalAlignment.Center; - DiagramViewModel.CellVerticalAlignment = CellVerticalAlignment.Center; + DiagramViewModel.DiagramOption.LayoutOption.ShowGrid = true; + DiagramViewModel.DiagramOption.LayoutOption.GridCellSize = new Size(100, 100); + DiagramViewModel.DiagramOption.LayoutOption.CellHorizontalAlignment = CellHorizontalAlignment.Center; + DiagramViewModel.DiagramOption.LayoutOption.CellVerticalAlignment = CellVerticalAlignment.Center; _service.DrawModeViewModel.LineDrawMode = DrawMode.ConnectingLineSmooth; } diff --git a/AIStudio.Wpf.DiagramApp/ViewModels/LogicalViewModel.cs b/AIStudio.Wpf.DiagramApp/ViewModels/LogicalViewModel.cs index a5f0b29..794517f 100644 --- a/AIStudio.Wpf.DiagramApp/ViewModels/LogicalViewModel.cs +++ b/AIStudio.Wpf.DiagramApp/ViewModels/LogicalViewModel.cs @@ -24,11 +24,11 @@ namespace AIStudio.Wpf.Logical { base.InitDiagramViewModel(); - DiagramViewModel.ShowGrid = true; - DiagramViewModel.GridCellSize = new Size(150, 100); - DiagramViewModel.PageSizeOrientation = PageSizeOrientation.Horizontal; - DiagramViewModel.CellHorizontalAlignment = CellHorizontalAlignment.Left; - DiagramViewModel.CellVerticalAlignment = CellVerticalAlignment.None; + DiagramViewModel.DiagramOption.LayoutOption.ShowGrid = true; + DiagramViewModel.DiagramOption.LayoutOption.GridCellSize = new Size(150, 100); + DiagramViewModel.DiagramOption.LayoutOption.PageSizeOrientation = PageSizeOrientation.Horizontal; + DiagramViewModel.DiagramOption.LayoutOption.CellHorizontalAlignment = CellHorizontalAlignment.Left; + DiagramViewModel.DiagramOption.LayoutOption.CellVerticalAlignment = CellVerticalAlignment.None; DiagramViewModel.Items.CollectionChanged += Items_CollectionChanged; _service.DrawModeViewModel.LineDrawMode = DrawMode.ConnectingLineSmooth; diff --git a/AIStudio.Wpf.DiagramApp/ViewModels/MindViewModel.cs b/AIStudio.Wpf.DiagramApp/ViewModels/MindViewModel.cs index 3660545..2d7385f 100644 --- a/AIStudio.Wpf.DiagramApp/ViewModels/MindViewModel.cs +++ b/AIStudio.Wpf.DiagramApp/ViewModels/MindViewModel.cs @@ -42,9 +42,9 @@ namespace AIStudio.Wpf.Flowchart { base.InitDiagramViewModel(); - DiagramViewModel.GridCellSize = new Size(100, 100); - DiagramViewModel.ShowGrid = false; - DiagramViewModel.AllowDrop = false; + DiagramViewModel.DiagramOption.LayoutOption.GridCellSize = new Size(100, 100); + DiagramViewModel.DiagramOption.LayoutOption.ShowGrid = false; + DiagramViewModel.DiagramOption.LayoutOption.AllowDrop = false; } public IMindDiagramViewModel MindDiagramViewModel diff --git a/AIStudio.Wpf.DiagramApp/ViewModels/PageViewModel.cs b/AIStudio.Wpf.DiagramApp/ViewModels/PageViewModel.cs index e31f979..e23dc91 100644 --- a/AIStudio.Wpf.DiagramApp/ViewModels/PageViewModel.cs +++ b/AIStudio.Wpf.DiagramApp/ViewModels/PageViewModel.cs @@ -106,24 +106,24 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels } } - private bool _showGrid; - public bool ShowGrid - { - get - { - return _showGrid; - } - set - { - if (SetProperty(ref _showGrid, value)) - { - foreach (var item in DiagramViewModels) - { - item.ShowGrid = _showGrid; - } - } - } - } + //private bool _showGrid; + //public bool ShowGrid + //{ + // get + // { + // return _showGrid; + // } + // set + // { + // if (SetProperty(ref _showGrid, value)) + // { + // foreach (var item in DiagramViewModels) + // { + // item.DiagramOption.LayoutOption.ShowGrid = _showGrid; + // } + // } + // } + //} public DiagramType DiagramType { @@ -369,18 +369,18 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels List viewModels = new List(); foreach (var diagramItem in diagramDocument.DiagramItems) - { + { var viewModel = GetDiagramViewModel(diagramItem.Name, diagramItem.DiagramType, false); - viewModel.ShowGrid = diagramItem.ShowGrid; - viewModel.PhysicalGridCellSize = diagramItem.PhysicalGridCellSize; - viewModel.CellHorizontalAlignment = diagramItem.CellHorizontalAlignment; - viewModel.CellVerticalAlignment = diagramItem.CellVerticalAlignment; - viewModel.PageSizeOrientation = diagramItem.PageSizeOrientation; - viewModel.PhysicalPageSize = diagramItem.PhysicalPageSize; - viewModel.PageSizeType = diagramItem.PageSizeType; - viewModel.PhysicalGridMarginSize = diagramItem.PhysicalGridMarginSize; - viewModel.GridColor = diagramItem.GridColor; - viewModel.AllowDrop = diagramItem.AllowDrop; + viewModel.DiagramOption.LayoutOption.ShowGrid = diagramItem.ShowGrid; + viewModel.DiagramOption.LayoutOption.PhysicalGridCellSize = diagramItem.PhysicalGridCellSize; + viewModel.DiagramOption.LayoutOption.CellHorizontalAlignment = diagramItem.CellHorizontalAlignment; + viewModel.DiagramOption.LayoutOption.CellVerticalAlignment = diagramItem.CellVerticalAlignment; + viewModel.DiagramOption.LayoutOption.PageSizeOrientation = diagramItem.PageSizeOrientation; + viewModel.DiagramOption.LayoutOption.PhysicalPageSize = diagramItem.PhysicalPageSize; + viewModel.DiagramOption.LayoutOption.PageSizeType = diagramItem.PageSizeType; + viewModel.DiagramOption.LayoutOption.PhysicalGridMarginSize = diagramItem.PhysicalGridMarginSize; + viewModel.DiagramOption.LayoutOption.GridColor = diagramItem.GridColor; + viewModel.DiagramOption.LayoutOption.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 2cd75ec..7484b00 100644 --- a/AIStudio.Wpf.DiagramApp/ViewModels/SFCViewModel.cs +++ b/AIStudio.Wpf.DiagramApp/ViewModels/SFCViewModel.cs @@ -40,10 +40,10 @@ namespace AIStudio.Wpf.Flowchart { base.InitDiagramViewModel(); - DiagramViewModel.ShowGrid = true; - DiagramViewModel.GridCellSize = new Size(100, 60); - DiagramViewModel.CellHorizontalAlignment = CellHorizontalAlignment.Center; - DiagramViewModel.CellVerticalAlignment = CellVerticalAlignment.Center; + DiagramViewModel.DiagramOption.LayoutOption.ShowGrid = true; + DiagramViewModel.DiagramOption.LayoutOption.GridCellSize = new Size(100, 60); + DiagramViewModel.DiagramOption.LayoutOption.CellHorizontalAlignment = CellHorizontalAlignment.Center; + DiagramViewModel.DiagramOption.LayoutOption.CellVerticalAlignment = CellVerticalAlignment.Center; _service.DrawModeViewModel.LineDrawMode = DrawMode.ConnectingLineBoundary; } diff --git a/AIStudio.Wpf.DiagramApp/ViewModels/ScriptViewModel.cs b/AIStudio.Wpf.DiagramApp/ViewModels/ScriptViewModel.cs index 992db08..9719349 100644 --- a/AIStudio.Wpf.DiagramApp/ViewModels/ScriptViewModel.cs +++ b/AIStudio.Wpf.DiagramApp/ViewModels/ScriptViewModel.cs @@ -47,8 +47,8 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels { base.InitDiagramViewModel(); - DiagramViewModel.PageSizeType = PageSizeType.Custom; - DiagramViewModel.PageSize = new Size(double.NaN, double.NaN); + DiagramViewModel.DiagramOption.LayoutOption.PageSizeType = PageSizeType.Custom; + DiagramViewModel.DiagramOption.LayoutOption.PageSize = new Size(double.NaN, double.NaN); DiagramViewModel.ColorViewModel = new ColorViewModel(); DiagramViewModel.ColorViewModel.FillColor.Color = System.Windows.Media.Colors.Orange; } diff --git a/AIStudio.Wpf.DiagramApp/Views/MainWindow.xaml b/AIStudio.Wpf.DiagramApp/Views/MainWindow.xaml index a9d5ee9..578e9cd 100644 --- a/AIStudio.Wpf.DiagramApp/Views/MainWindow.xaml +++ b/AIStudio.Wpf.DiagramApp/Views/MainWindow.xaml @@ -1593,7 +1593,7 @@ - + @@ -1610,7 +1610,7 @@ - + @@ -1627,7 +1627,7 @@ - + @@ -1650,21 +1650,21 @@ Width="190" /> - + - + - + - + - + @@ -1675,28 +1675,28 @@ - + - + - + - + @@ -1719,7 +1719,7 @@ - + @@ -1728,7 +1728,7 @@ - + @@ -1737,7 +1737,7 @@ - + @@ -1746,7 +1746,7 @@ - + @@ -1761,28 +1761,28 @@ - + - + - + - + @@ -1800,7 +1800,7 @@ - + @@ -1809,7 +1809,7 @@ - + @@ -1818,7 +1818,7 @@ - + @@ -1827,7 +1827,7 @@ - + @@ -1866,7 +1866,7 @@ - - + @@ -2510,7 +2510,7 @@ - + diff --git a/AIStudio.Wpf.DiagramDesigner/Models/Serializables/DiagramItem.cs b/AIStudio.Wpf.DiagramDesigner/Models/Serializables/DiagramItem.cs index 466937b..7dd754c 100644 --- a/AIStudio.Wpf.DiagramDesigner/Models/Serializables/DiagramItem.cs +++ b/AIStudio.Wpf.DiagramDesigner/Models/Serializables/DiagramItem.cs @@ -21,16 +21,16 @@ namespace AIStudio.Wpf.DiagramDesigner { Name = diagramView.Name; DiagramType = diagramView.DiagramType; - ShowGrid = diagramView.ShowGrid; - PhysicalGridCellSize = diagramView.PhysicalGridCellSize; - CellHorizontalAlignment = diagramView.CellHorizontalAlignment; - CellVerticalAlignment = diagramView.CellVerticalAlignment; - PageSizeOrientation = diagramView.PageSizeOrientation; - PhysicalPageSize = diagramView.PhysicalPageSize; - PageSizeType = diagramView.PageSizeType; - PhysicalGridMarginSize = diagramView.PhysicalGridMarginSize; - GridColor = diagramView.GridColor; - AllowDrop = diagramView.AllowDrop; + ShowGrid = diagramView.DiagramOption.LayoutOption.ShowGrid; + PhysicalGridCellSize = diagramView.DiagramOption.LayoutOption.PhysicalGridCellSize; + CellHorizontalAlignment = diagramView.DiagramOption.LayoutOption.CellHorizontalAlignment; + CellVerticalAlignment = diagramView.DiagramOption.LayoutOption.CellVerticalAlignment; + PageSizeOrientation = diagramView.DiagramOption.LayoutOption.PageSizeOrientation; + PhysicalPageSize = diagramView.DiagramOption.LayoutOption.PhysicalPageSize; + PageSizeType = diagramView.DiagramOption.LayoutOption.PageSizeType; + PhysicalGridMarginSize = diagramView.DiagramOption.LayoutOption.PhysicalGridMarginSize; + GridColor = diagramView.DiagramOption.LayoutOption.GridColor; + AllowDrop = diagramView.DiagramOption.LayoutOption.AllowDrop; } [XmlAttribute] diff --git a/AIStudio.Wpf.DiagramDesigner/PathGenerators/PathGenerators.Boundary.cs b/AIStudio.Wpf.DiagramDesigner/PathGenerators/PathGenerators.Boundary.cs index cb791c3..b81fb9e 100644 --- a/AIStudio.Wpf.DiagramDesigner/PathGenerators/PathGenerators.Boundary.cs +++ b/AIStudio.Wpf.DiagramDesigner/PathGenerators/PathGenerators.Boundary.cs @@ -37,8 +37,8 @@ namespace AIStudio.Wpf.DiagramDesigner link.SourceConnectorInfoFully.Orientation, link.SinkConnectorInfo.MiddlePosition, link.IsFullConnection ? link.SinkConnectorInfoFully.Orientation : (link.SinkConnectorInfo.MiddlePosition.Y >= link.SourceConnectorInfo.MiddlePosition.Y ? ConnectorOrientation.Top : ConnectorOrientation.Bottom), - _.GridCellSize, - _.GridMarginSize); + _.DiagramOption.LayoutOption.GridCellSize, + _.DiagramOption.LayoutOption.GridMarginSize); middle.Insert(0, route[0]); middle.Add(route[1]); diff --git a/AIStudio.Wpf.DiagramDesigner/UserControls/DiagramControl.xaml b/AIStudio.Wpf.DiagramDesigner/UserControls/DiagramControl.xaml index 0166608..7a67ff5 100644 --- a/AIStudio.Wpf.DiagramDesigner/UserControls/DiagramControl.xaml +++ b/AIStudio.Wpf.DiagramDesigner/UserControls/DiagramControl.xaml @@ -781,14 +781,14 @@ + Height="{Binding DiagramOption.LayoutOption.PageSize.Height}" + Width="{Binding DiagramOption.LayoutOption.PageSize.Width}" + ShowGrid="{Binding DiagramOption.LayoutOption.ShowGrid}" + GridCellSize="{Binding DiagramOption.LayoutOption.GridCellSize}" + GridMarginSize="{Binding DiagramOption.LayoutOption.GridMarginSize}" + GridColor="{Binding DiagramOption.LayoutOption.GridColor}" + Background="{Binding DiagramOption.LayoutOption.PageBackground,Converter={StaticResource ColorBrushConverter}}" + AllowDrop="{Binding DiagramOption.LayoutOption.AllowDrop}"> @@ -816,14 +816,14 @@ + Height="{Binding DiagramOption.LayoutOption.PageSize.Height}" + Width="{Binding DiagramOption.LayoutOption.PageSize.Width}" + ShowGrid="{Binding DiagramOption.LayoutOption.ShowGrid}" + GridCellSize="{Binding DiagramOption.LayoutOption.GridCellSize}" + GridMarginSize="{Binding DiagramOption.LayoutOption.GridMarginSize}" + GridColor="{Binding DiagramOption.LayoutOption.GridColor}" + Background="{Binding DiagramOption.LayoutOption.PageBackground,Converter={StaticResource ColorBrushConverter}}" + AllowDrop="{Binding DiagramOption.LayoutOption.AllowDrop}"> diff --git a/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/DesignerItemViewModelBase.cs b/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/DesignerItemViewModelBase.cs index d43b40b..9477462 100644 --- a/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/DesignerItemViewModelBase.cs +++ b/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/DesignerItemViewModelBase.cs @@ -601,41 +601,41 @@ namespace AIStudio.Wpf.DiagramDesigner { if (!(this is TextDesignerItemViewModel)) { - if (Root.CellHorizontalAlignment == CellHorizontalAlignment.Center) + if (Root.DiagramOption.LayoutOption.CellHorizontalAlignment == CellHorizontalAlignment.Center) { - if (Root.GridCellSize.Width > this.ItemWidth) + if (Root.DiagramOption.LayoutOption.GridCellSize.Width > this.ItemWidth) { - this.Left = (int)(this.Left / Root.GridCellSize.Width) * Root.GridCellSize.Width + Root.GridMarginSize.Width + (Root.GridCellSize.Width - this.ItemWidth) / 2; + this.Left = (int)(this.Left / Root.DiagramOption.LayoutOption.GridCellSize.Width) * Root.DiagramOption.LayoutOption.GridCellSize.Width + Root.DiagramOption.LayoutOption.GridMarginSize.Width + (Root.DiagramOption.LayoutOption.GridCellSize.Width - this.ItemWidth) / 2; } } - else if (Root.CellHorizontalAlignment == CellHorizontalAlignment.Left) + else if (Root.DiagramOption.LayoutOption.CellHorizontalAlignment == CellHorizontalAlignment.Left) { - this.Left = (int)(this.Left / Root.GridCellSize.Width) * Root.GridCellSize.Width + Root.GridMarginSize.Width; + this.Left = (int)(this.Left / Root.DiagramOption.LayoutOption.GridCellSize.Width) * Root.DiagramOption.LayoutOption.GridCellSize.Width + Root.DiagramOption.LayoutOption.GridMarginSize.Width; } - else if (Root.CellHorizontalAlignment == CellHorizontalAlignment.Right) + else if (Root.DiagramOption.LayoutOption.CellHorizontalAlignment == CellHorizontalAlignment.Right) { - if (Root.GridCellSize.Width > this.ItemWidth) + if (Root.DiagramOption.LayoutOption.GridCellSize.Width > this.ItemWidth) { - this.Left = (int)(this.Left / Root.GridCellSize.Width) * Root.GridCellSize.Width + Root.GridMarginSize.Width + (Root.GridCellSize.Width - this.ItemWidth); + this.Left = (int)(this.Left / Root.DiagramOption.LayoutOption.GridCellSize.Width) * Root.DiagramOption.LayoutOption.GridCellSize.Width + Root.DiagramOption.LayoutOption.GridMarginSize.Width + (Root.DiagramOption.LayoutOption.GridCellSize.Width - this.ItemWidth); } } - if (Root.CellVerticalAlignment == CellVerticalAlignment.Center) + if (Root.DiagramOption.LayoutOption.CellVerticalAlignment == CellVerticalAlignment.Center) { - if (Root.GridCellSize.Height > this.ItemHeight) + if (Root.DiagramOption.LayoutOption.GridCellSize.Height > this.ItemHeight) { - this.Top = (int)(this.Top / Root.GridCellSize.Height) * Root.GridCellSize.Height + Root.GridMarginSize.Height + (Root.GridCellSize.Height - this.ItemHeight) / 2; + this.Top = (int)(this.Top / Root.DiagramOption.LayoutOption.GridCellSize.Height) * Root.DiagramOption.LayoutOption.GridCellSize.Height + Root.DiagramOption.LayoutOption.GridMarginSize.Height + (Root.DiagramOption.LayoutOption.GridCellSize.Height - this.ItemHeight) / 2; } } - else if (Root.CellVerticalAlignment == CellVerticalAlignment.Top) + else if (Root.DiagramOption.LayoutOption.CellVerticalAlignment == CellVerticalAlignment.Top) { - this.Top = (int)(this.Top / Root.GridCellSize.Height) * Root.GridCellSize.Height + Root.GridMarginSize.Height; + this.Top = (int)(this.Top / Root.DiagramOption.LayoutOption.GridCellSize.Height) * Root.DiagramOption.LayoutOption.GridCellSize.Height + Root.DiagramOption.LayoutOption.GridMarginSize.Height; } - else if (Root.CellVerticalAlignment == CellVerticalAlignment.Bottom) + else if (Root.DiagramOption.LayoutOption.CellVerticalAlignment == CellVerticalAlignment.Bottom) { - if (Root.GridCellSize.Height > this.ItemHeight) + if (Root.DiagramOption.LayoutOption.GridCellSize.Height > this.ItemHeight) { - this.Top = (int)(this.Top / Root.GridCellSize.Height) * Root.GridCellSize.Height + Root.GridMarginSize.Height + (Root.GridCellSize.Height - this.ItemHeight); + this.Top = (int)(this.Top / Root.DiagramOption.LayoutOption.GridCellSize.Height) * Root.DiagramOption.LayoutOption.GridCellSize.Height + Root.DiagramOption.LayoutOption.GridMarginSize.Height + (Root.DiagramOption.LayoutOption.GridCellSize.Height - this.ItemHeight); } } } diff --git a/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/DiagramOption.cs b/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/DiagramOption.cs index 3430308..8a3ad5e 100644 --- a/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/DiagramOption.cs +++ b/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/DiagramOption.cs @@ -2,7 +2,9 @@ using System.Collections.Generic; using System.ComponentModel; using System.Text; +using System.Windows; using System.Windows.Input; +using System.Windows.Media; namespace AIStudio.Wpf.DiagramDesigner { @@ -24,9 +26,350 @@ namespace AIStudio.Wpf.DiagramDesigner } = new SnappingOption(); } - public class LayoutOption + public class LayoutOption : BindableBase { - + private PageSizeType _pageSizeType = PageSizeType.A4; + public PageSizeType PageSizeType + { + get + { + return _pageSizeType; + } + set + { + SetProperty(ref _pageSizeType, value); + RaisePropertyChanged(nameof(PageSize)); + } + } + + private Size _pageSize = new Size(1000, 600); + public Size PageSize + { + get + { + if (PageSizeOrientation == PageSizeOrientation.Vertical) + { + return GetPageSize(); + } + else + { + return new Size(GetPageSize().Height, GetPageSize().Width); + } + } + set + { + if (SetProperty(ref _pageSize, value)) + { + RaisePropertyChanged(nameof(PhysicalPageSize)); + } + } + } + + public Size PhysicalPageSize + { + get + { + return new Size(ScreenHelper.WidthToMm(PageSize.Width), ScreenHelper.WidthToMm(PageSize.Height)); + } + set + { + PageSize = new Size(ScreenHelper.MmToWidth(value.Width), ScreenHelper.MmToWidth(value.Height)); + } + } + + public Size GetPageSize() + { + Size size = _pageSize; + switch (PageSizeType) + { + case PageSizeType.A3: size = new Size(297, 420); break; + case PageSizeType.A4: size = new Size(210, 297); break; + case PageSizeType.A5: size = new Size(148, 210); break; + case PageSizeType.B4: size = new Size(257, 364); break; + case PageSizeType.B5: size = new Size(176, 250); break; + case PageSizeType.DLEnvelope: size = new Size(110, 220); break; + case PageSizeType.C5Envelope: size = new Size(162, 229); break; + case PageSizeType.Quarto: size = new Size(215, 275); break; + case PageSizeType.C6Quarto: size = new Size(114, 162); break; + case PageSizeType.B5Quarto: size = new Size(176, 250); break; + case PageSizeType.ItalyQuarto: size = new Size(110, 230); break; + case PageSizeType.A4small: size = new Size(210, 297); break; + case PageSizeType.GermanStdFanfold: size = new Size(215.9, 304.8); break; + case PageSizeType.GermanLegalFanfold: size = new Size(203.2, 330.2); break; + case PageSizeType.PRC16K: size = new Size(146, 215); break; + case PageSizeType.PRC32K: size = new Size(97, 151); break; + case PageSizeType.Letter: size = new Size(215.9, 279.4); break; + case PageSizeType.Folio: size = new Size(215.9, 330.2); break; + case PageSizeType.Legal: size = new Size(215.9, 355.6); break; + case PageSizeType.Executive: size = new Size(184.15, 266.7); break; + case PageSizeType.Statement: size = new Size(139.7, 215.9); break; + case PageSizeType.Envelope: size = new Size(104.77, 241.3); break; + case PageSizeType.MonarchEnvelope: size = new Size(98.425, 190.5); break; + case PageSizeType.Tabloid: size = new Size(279.4, 431.8); break; + case PageSizeType.LetterSmall: size = new Size(215.9, 279.4); break; + case PageSizeType.CSheet: size = new Size(431.8, 558.8); break; + case PageSizeType.DSheet: size = new Size(558.8, 863.6); break; + case PageSizeType.ESheet: size = new Size(863.6, 1117.6); break; + } + + return new Size(ScreenHelper.MmToWidth(size.Width), ScreenHelper.MmToWidth(size.Height)); + } + + private PageSizeOrientation _pageSizeOrientation; + public PageSizeOrientation PageSizeOrientation + { + get + { + return _pageSizeOrientation; + } + set + { + SetProperty(ref _pageSizeOrientation, value); + RaisePropertyChanged(nameof(PageSize)); + } + } + + private PageUnit _pageUnit = PageUnit.cm; + [Browsable(false)] + public PageUnit PageUnit + { + get + { + return _pageUnit; + } + set + { + if (value != PageUnit.cm && value != PageUnit.inch) + { + return; + } + SetProperty(ref _pageUnit, value); + } + } + + private Size _gridCellSize = new Size(100, 100); + public Size GridCellSize + { + get + { + return _gridCellSize; + } + set + { + SetProperty(ref _gridCellSize, value); + } + } + + public double GridCellWidth + { + get + { + return _gridCellSize.Width; + } + set + { + _gridCellSize.Width = value; + RaisePropertyChanged(nameof(PhysicalGridCellWidth)); + RaisePropertyChanged(nameof(GridCellSize)); + } + } + + public double GridCellHeight + { + get + { + return _gridCellSize.Height; + } + set + { + _gridCellSize.Height = value; + RaisePropertyChanged(nameof(PhysicalGridCellHeight)); + RaisePropertyChanged(nameof(GridCellSize)); + } + } + + public Size PhysicalGridCellSize + { + get + { + return new Size(ScreenHelper.WidthToMm(GridCellSize.Width), ScreenHelper.WidthToMm(GridCellSize.Height)); + } + set + { + GridCellSize = new Size(ScreenHelper.MmToWidth(value.Width), ScreenHelper.MmToWidth(value.Height)); + } + } + + public double PhysicalGridCellWidth + { + get + { + return ScreenHelper.WidthToMm(GridCellWidth); + } + set + { + GridCellWidth = ScreenHelper.MmToWidth(value); + } + } + + public double PhysicalGridCellHeight + { + get + { + return ScreenHelper.WidthToMm(GridCellHeight); + } + set + { + GridCellHeight = ScreenHelper.MmToWidth(value); + } + } + + private Color _pageBackground = Colors.White; + public Color PageBackground + { + get + { + return _pageBackground; + } + set + { + SetProperty(ref _pageBackground, value); + } + } + + private bool _showGrid = true; + public bool ShowGrid + { + get + { + return _showGrid; + } + set + { + SetProperty(ref _showGrid, value); + } + } + + private Color _gridColor = Colors.LightGray; + public Color GridColor + { + get + { + return _gridColor; + } + set + { + SetProperty(ref _gridColor, value); + } + } + + private Size _gridMarginSize = new Size(28, 28); + public Size GridMarginSize + { + get + { + return _gridMarginSize; + } + set + { + SetProperty(ref _gridMarginSize, value); + } + } + + public double GridMarginWidth + { + get + { + return _gridMarginSize.Width; + } + set + { + _gridMarginSize.Width = value; + RaisePropertyChanged(nameof(GridMarginSize)); + } + } + + public double GridMarginHeight + { + get + { + return _gridMarginSize.Height; + } + set + { + _gridMarginSize.Height = value; + RaisePropertyChanged(nameof(GridMarginSize)); + } + } + + public Size PhysicalGridMarginSize + { + get + { + return new Size(ScreenHelper.WidthToMm(GridMarginSize.Width), ScreenHelper.WidthToMm(GridMarginSize.Height)); + } + set + { + GridMarginSize = new Size(ScreenHelper.MmToWidth(value.Width), ScreenHelper.MmToWidth(value.Height)); + } + } + + public double PhysicalGridMarginWidth + { + get + { + return ScreenHelper.WidthToMm(GridMarginWidth); + } + set + { + GridMarginWidth = ScreenHelper.MmToWidth(value); + } + } + + public double PhysicalGridMarginHeight + { + get + { + return ScreenHelper.WidthToMm(GridMarginHeight); + } + set + { + GridMarginHeight = ScreenHelper.MmToWidth(value); + } + } + + private CellHorizontalAlignment _cellHorizontalAlignment; + [Browsable(false)] + public CellHorizontalAlignment CellHorizontalAlignment + { + get + { + return _cellHorizontalAlignment; + } + set + { + SetProperty(ref _cellHorizontalAlignment, value); + } + } + + private CellVerticalAlignment _cellVerticalAlignment; + [Browsable(false)] + public CellVerticalAlignment CellVerticalAlignment + { + get + { + return _cellVerticalAlignment; + } + set + { + SetProperty(ref _cellVerticalAlignment, value); + } + } + + public bool AllowDrop + { + get; set; + } = true; } public class SnappingOption diff --git a/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/DiagramViewModel.cs b/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/DiagramViewModel.cs index 24555ca..ba8c770 100644 --- a/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/DiagramViewModel.cs +++ b/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/DiagramViewModel.cs @@ -94,313 +94,17 @@ namespace AIStudio.Wpf.DiagramDesigner get; set; } - private PageSizeType _pageSizeType = PageSizeType.A4; - public PageSizeType PageSizeType - { - get - { - return _pageSizeType; - } - set - { - SetProperty(ref _pageSizeType, value); - RaisePropertyChanged(nameof(PageSize)); - } - } - - private Size _pageSize = new Size(1000, 600); - public Size PageSize - { - get - { - if (PageSizeOrientation == PageSizeOrientation.Vertical) - { - return GetPageSize(); - } - else - { - return new Size(GetPageSize().Height, GetPageSize().Width); - } - } - set - { - if (SetProperty(ref _pageSize, value)) - { - RaisePropertyChanged(nameof(PhysicalPageSize)); - } - } - } - - public Size PhysicalPageSize - { - get - { - return new Size(ScreenHelper.WidthToMm(PageSize.Width), ScreenHelper.WidthToMm(PageSize.Height)); - } - set - { - PageSize = new Size(ScreenHelper.MmToWidth(value.Width), ScreenHelper.MmToWidth(value.Height)); - } - } - - public Size GetPageSize() - { - Size size = _pageSize; - switch (PageSizeType) - { - case PageSizeType.A3: size = new Size(297, 420); break; - case PageSizeType.A4: size = new Size(210, 297); break; - case PageSizeType.A5: size = new Size(148, 210); break; - case PageSizeType.B4: size = new Size(257, 364); break; - case PageSizeType.B5: size = new Size(176, 250); break; - case PageSizeType.DLEnvelope: size = new Size(110, 220); break; - case PageSizeType.C5Envelope: size = new Size(162, 229); break; - case PageSizeType.Quarto: size = new Size(215, 275); break; - case PageSizeType.C6Quarto: size = new Size(114, 162); break; - case PageSizeType.B5Quarto: size = new Size(176, 250); break; - case PageSizeType.ItalyQuarto: size = new Size(110, 230); break; - case PageSizeType.A4small: size = new Size(210, 297); break; - case PageSizeType.GermanStdFanfold: size = new Size(215.9, 304.8); break; - case PageSizeType.GermanLegalFanfold: size = new Size(203.2, 330.2); break; - case PageSizeType.PRC16K: size = new Size(146, 215); break; - case PageSizeType.PRC32K: size = new Size(97, 151); break; - case PageSizeType.Letter: size = new Size(215.9, 279.4); break; - case PageSizeType.Folio: size = new Size(215.9, 330.2); break; - case PageSizeType.Legal: size = new Size(215.9, 355.6); break; - case PageSizeType.Executive: size = new Size(184.15, 266.7); break; - case PageSizeType.Statement: size = new Size(139.7, 215.9); break; - case PageSizeType.Envelope: size = new Size(104.77, 241.3); break; - case PageSizeType.MonarchEnvelope: size = new Size(98.425, 190.5); break; - case PageSizeType.Tabloid: size = new Size(279.4, 431.8); break; - case PageSizeType.LetterSmall: size = new Size(215.9, 279.4); break; - case PageSizeType.CSheet: size = new Size(431.8, 558.8); break; - case PageSizeType.DSheet: size = new Size(558.8, 863.6); break; - case PageSizeType.ESheet: size = new Size(863.6, 1117.6); break; - } - - return new Size(ScreenHelper.MmToWidth(size.Width), ScreenHelper.MmToWidth(size.Height)); - } - - private PageSizeOrientation _pageSizeOrientation; - public PageSizeOrientation PageSizeOrientation - { - get - { - return _pageSizeOrientation; - } - set - { - SetProperty(ref _pageSizeOrientation, value); - RaisePropertyChanged(nameof(PageSize)); - } - } - - private PageUnit _pageUnit = PageUnit.cm; + private DiagramType _diagramType; [Browsable(false)] - public PageUnit PageUnit + public DiagramType DiagramType { get { - return _pageUnit; + return _diagramType; } set { - if (value != PageUnit.cm && value != PageUnit.inch) - { - return; - } - SetProperty(ref _pageUnit, value); - } - } - - private Size _gridCellSize = new Size(100, 100); - public Size GridCellSize - { - get - { - return _gridCellSize; - } - set - { - SetProperty(ref _gridCellSize, value); - } - } - - public double GridCellWidth - { - get - { - return _gridCellSize.Width; - } - set - { - _gridCellSize.Width = value; - RaisePropertyChanged(nameof(PhysicalGridCellWidth)); - RaisePropertyChanged(nameof(GridCellSize)); - } - } - - public double GridCellHeight - { - get - { - return _gridCellSize.Height; - } - set - { - _gridCellSize.Height = value; - RaisePropertyChanged(nameof(PhysicalGridCellHeight)); - RaisePropertyChanged(nameof(GridCellSize)); - } - } - - public Size PhysicalGridCellSize - { - get - { - return new Size(ScreenHelper.WidthToMm(GridCellSize.Width), ScreenHelper.WidthToMm(GridCellSize.Height)); - } - set - { - GridCellSize = new Size(ScreenHelper.MmToWidth(value.Width), ScreenHelper.MmToWidth(value.Height)); - } - } - - public double PhysicalGridCellWidth - { - get - { - return ScreenHelper.WidthToMm(GridCellWidth); - } - set - { - GridCellWidth = ScreenHelper.MmToWidth(value); - } - } - - public double PhysicalGridCellHeight - { - get - { - return ScreenHelper.WidthToMm(GridCellHeight); - } - set - { - GridCellHeight = ScreenHelper.MmToWidth(value); - } - } - - private Color _pageBackground = Colors.White; - public Color PageBackground - { - get - { - return _pageBackground; - } - set - { - SetProperty(ref _pageBackground, value); - } - } - - private bool _showGrid = true; - public bool ShowGrid - { - get - { - return _showGrid; - } - set - { - SetProperty(ref _showGrid, value); - } - } - - private Color _gridColor = Colors.LightGray; - public Color GridColor - { - get - { - return _gridColor; - } - set - { - SetProperty(ref _gridColor, value); - } - } - - private Size _gridMarginSize = new Size(28, 28); - public Size GridMarginSize - { - get - { - return _gridMarginSize; - } - set - { - SetProperty(ref _gridMarginSize, value); - } - } - - public double GridMarginWidth - { - get - { - return _gridMarginSize.Width; - } - set - { - _gridMarginSize.Width = value; - RaisePropertyChanged(nameof(GridMarginSize)); - } - } - - public double GridMarginHeight - { - get - { - return _gridMarginSize.Height; - } - set - { - _gridMarginSize.Height = value; - RaisePropertyChanged(nameof(GridMarginSize)); - } - } - - public Size PhysicalGridMarginSize - { - get - { - return new Size(ScreenHelper.WidthToMm(GridMarginSize.Width), ScreenHelper.WidthToMm(GridMarginSize.Height)); - } - set - { - GridMarginSize = new Size(ScreenHelper.MmToWidth(value.Width), ScreenHelper.MmToWidth(value.Height)); - } - } - - public double PhysicalGridMarginWidth - { - get - { - return ScreenHelper.WidthToMm(GridMarginWidth); - } - set - { - GridMarginWidth = ScreenHelper.MmToWidth(value); - } - } - - public double PhysicalGridMarginHeight - { - get - { - return ScreenHelper.WidthToMm(GridMarginHeight); - } - set - { - GridMarginHeight = ScreenHelper.MmToWidth(value); + SetProperty(ref _diagramType, value); } } @@ -500,47 +204,7 @@ namespace AIStudio.Wpf.DiagramDesigner } } - private DiagramType _diagramType; - [Browsable(false)] - public DiagramType DiagramType - { - get - { - return _diagramType; - } - set - { - SetProperty(ref _diagramType, value); - } - } - - private CellHorizontalAlignment _cellHorizontalAlignment; - [Browsable(false)] - public CellHorizontalAlignment CellHorizontalAlignment - { - get - { - return _cellHorizontalAlignment; - } - set - { - SetProperty(ref _cellHorizontalAlignment, value); - } - } - - private CellVerticalAlignment _cellVerticalAlignment; - [Browsable(false)] - public CellVerticalAlignment CellVerticalAlignment - { - get - { - return _cellVerticalAlignment; - } - set - { - SetProperty(ref _cellVerticalAlignment, value); - } - } + private bool _isEditName; [Browsable(false)] @@ -691,11 +355,6 @@ namespace AIStudio.Wpf.DiagramDesigner get; set; } = new DiagramOption(); - public bool AllowDrop - { - get; set; - } = true; - public DoCommandManager DoCommandManager { get; private set; } = new DoCommandManager(); public event DiagramEventHandler Event; @@ -1170,16 +829,16 @@ namespace AIStudio.Wpf.DiagramDesigner public DiagramViewModel(DiagramItem diagramItem) : this() { DiagramType = diagramItem.DiagramType; - ShowGrid = diagramItem.ShowGrid; - PhysicalGridCellSize = diagramItem.PhysicalGridCellSize; - CellHorizontalAlignment = diagramItem.CellHorizontalAlignment; - CellVerticalAlignment = diagramItem.CellVerticalAlignment; - PageSizeOrientation = diagramItem.PageSizeOrientation; - PhysicalPageSize = diagramItem.PhysicalPageSize; - PageSizeType = diagramItem.PageSizeType; - PhysicalGridMarginSize = diagramItem.PhysicalGridMarginSize; - GridColor = diagramItem.GridColor; - AllowDrop = diagramItem.AllowDrop; + DiagramOption.LayoutOption.ShowGrid = diagramItem.ShowGrid; + DiagramOption.LayoutOption.PhysicalGridCellSize = diagramItem.PhysicalGridCellSize; + DiagramOption.LayoutOption.CellHorizontalAlignment = diagramItem.CellHorizontalAlignment; + DiagramOption.LayoutOption.CellVerticalAlignment = diagramItem.CellVerticalAlignment; + DiagramOption.LayoutOption.PageSizeOrientation = diagramItem.PageSizeOrientation; + DiagramOption.LayoutOption.PhysicalPageSize = diagramItem.PhysicalPageSize; + DiagramOption.LayoutOption.PageSizeType = diagramItem.PageSizeType; + DiagramOption.LayoutOption.PhysicalGridMarginSize = diagramItem.PhysicalGridMarginSize; + DiagramOption.LayoutOption.GridColor = diagramItem.GridColor; + DiagramOption.LayoutOption.AllowDrop = diagramItem.AllowDrop; Init(true); } @@ -2601,8 +2260,8 @@ namespace AIStudio.Wpf.DiagramDesigner var oldcenter = BoundingRect.Center; foreach (var item in selectedItems.OfType()) { - item.Left = item.Left - oldcenter.X + PageSize.Width / 2; - item.Top = item.Top - oldcenter.Y + PageSize.Height / 2; + item.Left = item.Left - oldcenter.X + DiagramOption.LayoutOption.PageSize.Width / 2; + item.Top = item.Top - oldcenter.Y + DiagramOption.LayoutOption.PageSize.Height / 2; } FitViewModel = new FitViewModel() { BoundingRect = DiagramViewModelHelper.GetBoundingRectangle(selectedItems) }; diff --git a/AIStudio.Wpf.DiagramDesigner/ViewModels/IDiagramViewModel.cs b/AIStudio.Wpf.DiagramDesigner/ViewModels/IDiagramViewModel.cs index 50060f0..e292cf2 100644 --- a/AIStudio.Wpf.DiagramDesigner/ViewModels/IDiagramViewModel.cs +++ b/AIStudio.Wpf.DiagramDesigner/ViewModels/IDiagramViewModel.cs @@ -234,6 +234,11 @@ namespace AIStudio.Wpf.DiagramDesigner get; } + DiagramType DiagramType + { + get;set; + } + event DiagramEventHandler Event; bool IsReadOnly @@ -243,59 +248,7 @@ namespace AIStudio.Wpf.DiagramDesigner bool IsLoading { get; set; - } - Size PageSize - { - get; set; - } - Size PhysicalPageSize - { - get; set; - } - PageSizeType PageSizeType - { - get; set; - } - bool ShowGrid - { - get; set; - } - Size GridCellSize - { - get; set; - } - Size PhysicalGridCellSize - { - get; set; - } - PageSizeOrientation PageSizeOrientation - { - get; set; - } - CellHorizontalAlignment CellHorizontalAlignment - { - get; set; - } - CellVerticalAlignment CellVerticalAlignment - { - get; set; - } - Size GridMarginSize - { - get; set; - } - Size PhysicalGridMarginSize - { - get; set; - } - Color GridColor - { - get; set; - } - DiagramType DiagramType - { - get; set; - } + } double ZoomValue { get; set; @@ -311,11 +264,7 @@ namespace AIStudio.Wpf.DiagramDesigner bool DefaultZoomBox { get; set; - } - bool AllowDrop - { - get; set; - } + } System.Windows.Point CurrentPoint { get; set; diff --git a/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Algorithms/ReconnectLinksToClosestPortsViewModel.cs b/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Algorithms/ReconnectLinksToClosestPortsViewModel.cs index ef83cfe..50c943e 100644 --- a/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Algorithms/ReconnectLinksToClosestPortsViewModel.cs +++ b/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Algorithms/ReconnectLinksToClosestPortsViewModel.cs @@ -14,8 +14,8 @@ namespace AIStudio.Wpf.DiagramDesigner.Demo.ViewModels Info = "An example of reconnecting links to the closest ports."; DiagramViewModel = new DiagramViewModel(); - DiagramViewModel.PageSizeType = PageSizeType.Custom; - DiagramViewModel.PageSize = new Size(double.NaN, double.NaN); + DiagramViewModel.DiagramOption.LayoutOption.PageSizeType = PageSizeType.Custom; + DiagramViewModel.DiagramOption.LayoutOption.PageSize = new Size(double.NaN, double.NaN); DiagramViewModel.ColorViewModel = new ColorViewModel(); DiagramViewModel.ColorViewModel.FillColor.Color = System.Windows.Media.Colors.Orange; diff --git a/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Animations/LineAnimationViewModel.cs b/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Animations/LineAnimationViewModel.cs index 550e1e9..4f5845f 100644 --- a/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Animations/LineAnimationViewModel.cs +++ b/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Animations/LineAnimationViewModel.cs @@ -13,8 +13,8 @@ namespace AIStudio.Wpf.DiagramDesigner.Demo.ViewModels Info = "Line path motion animationr."; DiagramViewModel = new DiagramViewModel(); - DiagramViewModel.PageSizeType = PageSizeType.Custom; - DiagramViewModel.PageSize = new Size(double.NaN, double.NaN); + DiagramViewModel.DiagramOption.LayoutOption.PageSizeType = PageSizeType.Custom; + DiagramViewModel.DiagramOption.LayoutOption.PageSize = new Size(double.NaN, double.NaN); DiagramViewModel.ColorViewModel = new ColorViewModel(); DiagramViewModel.ColorViewModel.FillColor.Color = System.Windows.Media.Colors.Orange; diff --git a/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Animations/PathAnimationViewModel.cs b/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Animations/PathAnimationViewModel.cs index 4ba5505..e3d3ac2 100644 --- a/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Animations/PathAnimationViewModel.cs +++ b/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Animations/PathAnimationViewModel.cs @@ -14,8 +14,8 @@ namespace AIStudio.Wpf.DiagramDesigner.Demo.ViewModels Info = "Line flow motion animation."; DiagramViewModel = new DiagramViewModel(); - DiagramViewModel.PageSizeType = PageSizeType.Custom; - DiagramViewModel.PageSize = new Size(double.NaN, double.NaN); + DiagramViewModel.DiagramOption.LayoutOption.PageSizeType = PageSizeType.Custom; + DiagramViewModel.DiagramOption.LayoutOption.PageSize = new Size(double.NaN, double.NaN); DiagramViewModel.ColorViewModel = new ColorViewModel(); DiagramViewModel.ColorViewModel.FillColor.Color = System.Windows.Media.Colors.Orange; diff --git a/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Customization/CustomGroupViewModel.cs b/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Customization/CustomGroupViewModel.cs index 744f308..4eb18ce 100644 --- a/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Customization/CustomGroupViewModel.cs +++ b/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Customization/CustomGroupViewModel.cs @@ -13,8 +13,8 @@ namespace AIStudio.Wpf.DiagramDesigner.Demo.ViewModels Info = "Creating your own custom groups is very easy!"; DiagramViewModel = new DiagramViewModel(); - DiagramViewModel.PageSizeType = PageSizeType.Custom; - DiagramViewModel.PageSize = new Size(double.NaN, double.NaN); + DiagramViewModel.DiagramOption.LayoutOption.PageSizeType = PageSizeType.Custom; + DiagramViewModel.DiagramOption.LayoutOption.PageSize = new Size(double.NaN, double.NaN); DiagramViewModel.ColorViewModel = new ColorViewModel(); DiagramViewModel.ColorViewModel.FillColor.Color = System.Windows.Media.Colors.Orange; diff --git a/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Customization/CustomLinkViewModel.cs b/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Customization/CustomLinkViewModel.cs index 672bfb4..78d4c24 100644 --- a/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Customization/CustomLinkViewModel.cs +++ b/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Customization/CustomLinkViewModel.cs @@ -14,8 +14,8 @@ namespace AIStudio.Wpf.DiagramDesigner.Demo.ViewModels Info = "Creating your own custom links is very easy!"; DiagramViewModel = new DiagramViewModel(); - DiagramViewModel.PageSizeType = PageSizeType.Custom; - DiagramViewModel.PageSize = new Size(double.NaN, double.NaN); + DiagramViewModel.DiagramOption.LayoutOption.PageSizeType = PageSizeType.Custom; + DiagramViewModel.DiagramOption.LayoutOption.PageSize = new Size(double.NaN, double.NaN); DiagramViewModel.ColorViewModel = new ColorViewModel(); DiagramViewModel.ColorViewModel.FillColor.Color = System.Windows.Media.Colors.Orange; diff --git a/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Customization/CustomNodeViewModel.cs b/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Customization/CustomNodeViewModel.cs index 0db7783..0b3567d 100644 --- a/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Customization/CustomNodeViewModel.cs +++ b/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Customization/CustomNodeViewModel.cs @@ -14,8 +14,8 @@ namespace AIStudio.Wpf.DiagramDesigner.Demo.ViewModels Info = "Creating your own custom design is very easy!"; DiagramViewModel = new DiagramViewModel(); - DiagramViewModel.PageSizeType = PageSizeType.Custom; - DiagramViewModel.PageSize = new Size(double.NaN, double.NaN); + DiagramViewModel.DiagramOption.LayoutOption.PageSizeType = PageSizeType.Custom; + DiagramViewModel.DiagramOption.LayoutOption.PageSize = new Size(double.NaN, double.NaN); DiagramViewModel.ColorViewModel = new ColorViewModel(); DiagramViewModel.ColorViewModel.FillColor.Color = System.Windows.Media.Colors.Orange; diff --git a/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Customization/CustomPortViewModel.cs b/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Customization/CustomPortViewModel.cs index 123790e..15c3c5e 100644 --- a/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Customization/CustomPortViewModel.cs +++ b/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Customization/CustomPortViewModel.cs @@ -13,8 +13,8 @@ namespace AIStudio.Wpf.DiagramDesigner.Demo.ViewModels Info = "Creating your own custom port is very easy!"; DiagramViewModel = new DiagramViewModel(); - DiagramViewModel.PageSizeType = PageSizeType.Custom; - DiagramViewModel.PageSize = new Size(double.NaN, double.NaN); + DiagramViewModel.DiagramOption.LayoutOption.PageSizeType = PageSizeType.Custom; + DiagramViewModel.DiagramOption.LayoutOption.PageSize = new Size(double.NaN, double.NaN); DiagramViewModel.ColorViewModel = new ColorViewModel(); DiagramViewModel.ColorViewModel.FillColor.Color = System.Windows.Media.Colors.Orange; diff --git a/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/DragAndDropViewModel.cs b/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/DragAndDropViewModel.cs index 2d9963f..5c88387 100644 --- a/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/DragAndDropViewModel.cs +++ b/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/DragAndDropViewModel.cs @@ -17,13 +17,13 @@ namespace AIStudio.Wpf.DiagramDesigner.Demo.ViewModels ToolBoxViewModel = new FlowchartToolBoxViewModel(); DiagramViewModel = new DiagramViewModel(); - DiagramViewModel.ShowGrid = true; - DiagramViewModel.GridCellSize = new Size(100, 100); - DiagramViewModel.GridMarginSize = new Size(0, 0); - DiagramViewModel.CellHorizontalAlignment = CellHorizontalAlignment.Center; - DiagramViewModel.CellVerticalAlignment = CellVerticalAlignment.Center; - DiagramViewModel.PageSizeType = PageSizeType.Custom; - DiagramViewModel.PageSize = new Size(double.NaN, double.NaN); + DiagramViewModel.DiagramOption.LayoutOption.ShowGrid = true; + DiagramViewModel.DiagramOption.LayoutOption.GridCellSize = new Size(100, 100); + DiagramViewModel.DiagramOption.LayoutOption.GridMarginSize = new Size(0, 0); + DiagramViewModel.DiagramOption.LayoutOption.CellHorizontalAlignment = CellHorizontalAlignment.Center; + DiagramViewModel.DiagramOption.LayoutOption.CellVerticalAlignment = CellVerticalAlignment.Center; + DiagramViewModel.DiagramOption.LayoutOption.PageSizeType = PageSizeType.Custom; + DiagramViewModel.DiagramOption.LayoutOption.PageSize = new Size(double.NaN, double.NaN); DiagramViewModel.PropertyChanged += DiagramViewModel_PropertyChanged; } diff --git a/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/EventsViewModel.cs b/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/EventsViewModel.cs index d6697ca..146e138 100644 --- a/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/EventsViewModel.cs +++ b/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/EventsViewModel.cs @@ -15,8 +15,8 @@ namespace AIStudio.Wpf.DiagramDesigner.Demo.ViewModels "Also, the Diagram and every Model have a Changed event."; DiagramViewModel = new DiagramViewModel(); - DiagramViewModel.PageSizeType = PageSizeType.Custom; - DiagramViewModel.PageSize = new Size(double.NaN, double.NaN); + DiagramViewModel.DiagramOption.LayoutOption.PageSizeType = PageSizeType.Custom; + DiagramViewModel.DiagramOption.LayoutOption.PageSize = new Size(double.NaN, double.NaN); DiagramViewModel.ColorViewModel = new ColorViewModel(); DiagramViewModel.ColorViewModel.FillColor.Color = System.Windows.Media.Colors.Orange; diff --git a/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Groups/CustomDefinedGroupViewModel.cs b/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Groups/CustomDefinedGroupViewModel.cs index 96c04c1..401457f 100644 --- a/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Groups/CustomDefinedGroupViewModel.cs +++ b/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Groups/CustomDefinedGroupViewModel.cs @@ -14,8 +14,8 @@ namespace AIStudio.Wpf.DiagramDesigner.Demo.ViewModels.Groups "Currently, the library doesn't handle nested groups yet nor ports."; DiagramViewModel = new DiagramViewModel(); - DiagramViewModel.PageSizeType = PageSizeType.Custom; - DiagramViewModel.PageSize = new Size(double.NaN, double.NaN); + DiagramViewModel.DiagramOption.LayoutOption.PageSizeType = PageSizeType.Custom; + DiagramViewModel.DiagramOption.LayoutOption.PageSize = new Size(double.NaN, double.NaN); DiagramViewModel.ColorViewModel = new ColorViewModel(); DiagramViewModel.ColorViewModel.FillColor.Color = System.Windows.Media.Colors.Orange; diff --git a/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Groups/CustomShortcutGroupViewModel.cs b/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Groups/CustomShortcutGroupViewModel.cs index 11c0f9e..14de0ea 100644 --- a/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Groups/CustomShortcutGroupViewModel.cs +++ b/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Groups/CustomShortcutGroupViewModel.cs @@ -14,8 +14,8 @@ namespace AIStudio.Wpf.DiagramDesigner.Demo.ViewModels Info = "You can customize what needs to be pressed to group selected nodes. CTRL+SHIFT+K in this example."; DiagramViewModel = new DiagramViewModel(); - DiagramViewModel.PageSizeType = PageSizeType.Custom; - DiagramViewModel.PageSize = new Size(double.NaN, double.NaN); + DiagramViewModel.DiagramOption.LayoutOption.PageSizeType = PageSizeType.Custom; + DiagramViewModel.DiagramOption.LayoutOption.PageSize = new Size(double.NaN, double.NaN); DiagramViewModel.ColorViewModel = new ColorViewModel(); DiagramViewModel.ColorViewModel.FillColor.Color = System.Windows.Media.Colors.Orange; DiagramViewModel.DiagramOption.ShortcutOption.Group = e => e.KeyboardDevice.Modifiers == (ModifierKeys.Control | ModifierKeys.Shift) && e.Key == Key.K; diff --git a/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Groups/GroupViewModel.cs b/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Groups/GroupViewModel.cs index 302b51d..c454cd0 100644 --- a/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Groups/GroupViewModel.cs +++ b/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Groups/GroupViewModel.cs @@ -14,8 +14,8 @@ namespace AIStudio.Wpf.DiagramDesigner.Demo.ViewModels "Currently, the library doesn't handle nested groups yet nor ports."; DiagramViewModel = new DiagramViewModel(); - DiagramViewModel.PageSizeType = PageSizeType.Custom; - DiagramViewModel.PageSize = new Size(double.NaN, double.NaN); + DiagramViewModel.DiagramOption.LayoutOption.PageSizeType = PageSizeType.Custom; + DiagramViewModel.DiagramOption.LayoutOption.PageSize = new Size(double.NaN, double.NaN); DiagramViewModel.ColorViewModel = new ColorViewModel(); DiagramViewModel.ColorViewModel.FillColor.Color = System.Windows.Media.Colors.Orange; diff --git a/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Links/LabelsViewModel.cs b/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Links/LabelsViewModel.cs index 58769ab..3e3ec2f 100644 --- a/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Links/LabelsViewModel.cs +++ b/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Links/LabelsViewModel.cs @@ -14,8 +14,8 @@ namespace AIStudio.Wpf.DiagramDesigner.Demo.ViewModels "The content of the labels is still limited because of Blazor's poor SVG support."; DiagramViewModel = new DiagramViewModel(); - DiagramViewModel.PageSizeType = PageSizeType.Custom; - DiagramViewModel.PageSize = new Size(double.NaN, double.NaN); + DiagramViewModel.DiagramOption.LayoutOption.PageSizeType = PageSizeType.Custom; + DiagramViewModel.DiagramOption.LayoutOption.PageSize = new Size(double.NaN, double.NaN); DiagramViewModel.ColorViewModel = new ColorViewModel(); DiagramViewModel.ColorViewModel.FillColor.Color = System.Windows.Media.Colors.Orange; diff --git a/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Links/MarkersViewModel.cs b/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Links/MarkersViewModel.cs index 05ceb9e..e8ff19f 100644 --- a/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Links/MarkersViewModel.cs +++ b/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Links/MarkersViewModel.cs @@ -13,8 +13,8 @@ namespace AIStudio.Wpf.DiagramDesigner.Demo.ViewModels Info = "Markers are SVG Paths that you can put at the beginning or at the end of your links."; DiagramViewModel = new DiagramViewModel(); - DiagramViewModel.PageSizeType = PageSizeType.Custom; - DiagramViewModel.PageSize = new Size(double.NaN, double.NaN); + DiagramViewModel.DiagramOption.LayoutOption.PageSizeType = PageSizeType.Custom; + DiagramViewModel.DiagramOption.LayoutOption.PageSize = new Size(double.NaN, double.NaN); DiagramViewModel.ColorViewModel = new ColorViewModel(); DiagramViewModel.ColorViewModel.FillColor.Color = System.Windows.Media.Colors.Orange; diff --git a/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Links/PathGeneratorsViewModel.cs b/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Links/PathGeneratorsViewModel.cs index 01ece75..f180326 100644 --- a/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Links/PathGeneratorsViewModel.cs +++ b/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Links/PathGeneratorsViewModel.cs @@ -14,10 +14,10 @@ namespace AIStudio.Wpf.DiagramDesigner.Demo.ViewModels "alongside the markers positions and their angles. There are currently two generators: Straight and Smooth."; DiagramViewModel = new DiagramViewModel(); - DiagramViewModel.PageSizeType = PageSizeType.Custom; - DiagramViewModel.PageSize = new Size(double.NaN, double.NaN); - DiagramViewModel.CellHorizontalAlignment = CellHorizontalAlignment.Center; - DiagramViewModel.CellVerticalAlignment = CellVerticalAlignment.Center; + DiagramViewModel.DiagramOption.LayoutOption.PageSizeType = PageSizeType.Custom; + DiagramViewModel.DiagramOption.LayoutOption.PageSize = new Size(double.NaN, double.NaN); + DiagramViewModel.DiagramOption.LayoutOption.CellHorizontalAlignment = CellHorizontalAlignment.Center; + DiagramViewModel.DiagramOption.LayoutOption.CellVerticalAlignment = CellVerticalAlignment.Center; DiagramViewModel.ColorViewModel = new ColorViewModel(); DiagramViewModel.ColorViewModel.FillColor.Color = System.Windows.Media.Colors.Orange; diff --git a/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Links/RoutersViewModel.cs b/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Links/RoutersViewModel.cs index 8afae08..4368cc7 100644 --- a/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Links/RoutersViewModel.cs +++ b/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Links/RoutersViewModel.cs @@ -14,8 +14,8 @@ namespace AIStudio.Wpf.DiagramDesigner.Demo.ViewModels "There are currently two routers: Normal and Orthogonal."; DiagramViewModel = new DiagramViewModel(); - DiagramViewModel.PageSizeType = PageSizeType.Custom; - DiagramViewModel.PageSize = new Size(double.NaN, double.NaN); + DiagramViewModel.DiagramOption.LayoutOption.PageSizeType = PageSizeType.Custom; + DiagramViewModel.DiagramOption.LayoutOption.PageSize = new Size(double.NaN, double.NaN); DiagramViewModel.ColorViewModel = new ColorViewModel(); DiagramViewModel.ColorViewModel.FillColor.Color = System.Windows.Media.Colors.Orange; diff --git a/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Links/SnappingViewModel.cs b/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Links/SnappingViewModel.cs index 4ed1fb1..0225794 100644 --- a/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Links/SnappingViewModel.cs +++ b/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Links/SnappingViewModel.cs @@ -13,9 +13,10 @@ namespace AIStudio.Wpf.DiagramDesigner.Demo.ViewModels Info = "While dragging a new link, it will try to find (and link) to the closest target within a radius."; DiagramViewModel = new DiagramViewModel(); - DiagramViewModel.PageSizeType = PageSizeType.Custom; - DiagramViewModel.PageSize = new Size(double.NaN, double.NaN); - DiagramViewModel.DrawModeViewModel = new DrawModeViewModel() { EnableSnapping = true }; + DiagramViewModel.DiagramOption.LayoutOption.PageSizeType = PageSizeType.Custom; + DiagramViewModel.DiagramOption.LayoutOption.PageSize = new Size(double.NaN, double.NaN); + DiagramViewModel.DiagramOption.SnappingOption.EnableSnapping = true; + DiagramViewModel.DrawModeViewModel = new DrawModeViewModel() { }; DiagramViewModel.ColorViewModel = new ColorViewModel(); DiagramViewModel.ColorViewModel.FillColor.Color = System.Windows.Media.Colors.Orange; diff --git a/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Links/VerticesViewModel.cs b/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Links/VerticesViewModel.cs index da1da35..f7ff174 100644 --- a/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Links/VerticesViewModel.cs +++ b/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Links/VerticesViewModel.cs @@ -14,8 +14,8 @@ namespace AIStudio.Wpf.DiagramDesigner.Demo.ViewModels "You can drag the vertices around."; DiagramViewModel = new DiagramViewModel(); - DiagramViewModel.PageSizeType = PageSizeType.Custom; - DiagramViewModel.PageSize = new Size(double.NaN, double.NaN); + DiagramViewModel.DiagramOption.LayoutOption.PageSizeType = PageSizeType.Custom; + DiagramViewModel.DiagramOption.LayoutOption.PageSize = new Size(double.NaN, double.NaN); DiagramViewModel.ColorViewModel = new ColorViewModel(); DiagramViewModel.ColorViewModel.FillColor.Color = System.Windows.Media.Colors.Orange; diff --git a/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/LockedViewModel.cs b/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/LockedViewModel.cs index 21bfcf0..4cbb72b 100644 --- a/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/LockedViewModel.cs +++ b/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/LockedViewModel.cs @@ -16,10 +16,10 @@ namespace AIStudio.Wpf.DiagramDesigner.Demo.ViewModels "Newly created links aren't locked, so they can be deleted."; DiagramViewModel = new DiagramViewModel(); - DiagramViewModel.CellHorizontalAlignment = CellHorizontalAlignment.Center; - DiagramViewModel.CellVerticalAlignment = CellVerticalAlignment.Center; - DiagramViewModel.PageSizeType = PageSizeType.Custom; - DiagramViewModel.PageSize = new Size(double.NaN, double.NaN); + DiagramViewModel.DiagramOption.LayoutOption.CellHorizontalAlignment = CellHorizontalAlignment.Center; + DiagramViewModel.DiagramOption.LayoutOption.CellVerticalAlignment = CellVerticalAlignment.Center; + DiagramViewModel.DiagramOption.LayoutOption.PageSizeType = PageSizeType.Custom; + DiagramViewModel.DiagramOption.LayoutOption.PageSize = new Size(double.NaN, double.NaN); DiagramViewModel.ColorViewModel = new ColorViewModel(); DiagramViewModel.ColorViewModel.FillColor.Color = System.Windows.Media.Colors.Orange; diff --git a/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Nodes/CustomDefinedNodeViewModel.cs b/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Nodes/CustomDefinedNodeViewModel.cs index bd6e3d9..f7e743b 100644 --- a/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Nodes/CustomDefinedNodeViewModel.cs +++ b/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Nodes/CustomDefinedNodeViewModel.cs @@ -14,8 +14,8 @@ namespace AIStudio.Wpf.DiagramDesigner.Demo.ViewModels Info = "Creating your own defined design is very easy!"; DiagramViewModel = new DiagramViewModel(); - DiagramViewModel.PageSizeType = PageSizeType.Custom; - DiagramViewModel.PageSize = new Size(double.NaN, double.NaN); + DiagramViewModel.DiagramOption.LayoutOption.PageSizeType = PageSizeType.Custom; + DiagramViewModel.DiagramOption.LayoutOption.PageSize = new Size(double.NaN, double.NaN); DiagramViewModel.ColorViewModel = new ColorViewModel(); DiagramViewModel.ColorViewModel.FillColor.Color = System.Windows.Media.Colors.Orange; diff --git a/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Nodes/GradientNodeViewModel.cs b/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Nodes/GradientNodeViewModel.cs index 45330ad..0f4ef82 100644 --- a/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Nodes/GradientNodeViewModel.cs +++ b/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Nodes/GradientNodeViewModel.cs @@ -14,8 +14,8 @@ namespace AIStudio.Wpf.DiagramDesigner.Demo.ViewModels Info = "A node with a gradient background."; DiagramViewModel = new DiagramViewModel(); - DiagramViewModel.PageSizeType = PageSizeType.Custom; - DiagramViewModel.PageSize = new Size(double.NaN, double.NaN); + DiagramViewModel.DiagramOption.LayoutOption.PageSizeType = PageSizeType.Custom; + DiagramViewModel.DiagramOption.LayoutOption.PageSize = new Size(double.NaN, double.NaN); DiagramViewModel.ColorViewModel = new ColorViewModel(); DiagramViewModel.ColorViewModel.FillColor.Color = System.Windows.Media.Colors.Orange; diff --git a/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Nodes/RotateViewModel.cs b/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Nodes/RotateViewModel.cs index 422c47b..2673136 100644 --- a/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Nodes/RotateViewModel.cs +++ b/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Nodes/RotateViewModel.cs @@ -13,8 +13,8 @@ namespace AIStudio.Wpf.DiagramDesigner.Demo.ViewModels.Nodes Info = "A simple example of AIStudio.Wpf.DiagramDesigner."; DiagramViewModel = new DiagramViewModel(); - DiagramViewModel.PageSizeType = PageSizeType.Custom; - DiagramViewModel.PageSize = new Size(double.NaN, double.NaN); + DiagramViewModel.DiagramOption.LayoutOption.PageSizeType = PageSizeType.Custom; + DiagramViewModel.DiagramOption.LayoutOption.PageSize = new Size(double.NaN, double.NaN); DiagramViewModel.ColorViewModel = new ColorViewModel(); DiagramViewModel.ColorViewModel.FillColor.Color = System.Windows.Media.Colors.Orange; diff --git a/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Nodes/SvgViewModel.cs b/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Nodes/SvgViewModel.cs index 2b7aa74..076d9fd 100644 --- a/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Nodes/SvgViewModel.cs +++ b/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Nodes/SvgViewModel.cs @@ -14,10 +14,10 @@ namespace AIStudio.Wpf.DiagramDesigner.Demo.ViewModels Info = "You can also have SVG nodes! All you need to do is to set the Layer to RenderLayer.SVG."; DiagramViewModel = new DiagramViewModel(); - DiagramViewModel.CellHorizontalAlignment = CellHorizontalAlignment.Center; - DiagramViewModel.CellVerticalAlignment = CellVerticalAlignment.Center; - DiagramViewModel.PageSizeType = PageSizeType.Custom; - DiagramViewModel.PageSize = new Size(double.NaN, double.NaN); + DiagramViewModel.DiagramOption.LayoutOption.CellHorizontalAlignment = CellHorizontalAlignment.Center; + DiagramViewModel.DiagramOption.LayoutOption.CellVerticalAlignment = CellVerticalAlignment.Center; + DiagramViewModel.DiagramOption.LayoutOption.PageSizeType = PageSizeType.Custom; + DiagramViewModel.DiagramOption.LayoutOption.PageSize = new Size(double.NaN, double.NaN); DiagramViewModel.ColorViewModel = new ColorViewModel(); DiagramViewModel.ColorViewModel.FillColor.Color = System.Windows.Media.Colors.Orange; diff --git a/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/PerformanceViewModel.cs b/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/PerformanceViewModel.cs index 9d3819f..f23d27e 100644 --- a/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/PerformanceViewModel.cs +++ b/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/PerformanceViewModel.cs @@ -13,8 +13,8 @@ namespace AIStudio.Wpf.DiagramDesigner.Demo.ViewModels Info = "This diagram contains 100 nodes and 50 links"; DiagramViewModel = new DiagramViewModel(); - DiagramViewModel.PageSizeType = PageSizeType.Custom; - DiagramViewModel.PageSize = new Size(1000, 1000); + DiagramViewModel.DiagramOption.LayoutOption.PageSizeType = PageSizeType.Custom; + DiagramViewModel.DiagramOption.LayoutOption.PageSize = new Size(1000, 1000); DiagramViewModel.ColorViewModel = new ColorViewModel(); DiagramViewModel.ColorViewModel.FillColor.Color = System.Windows.Media.Colors.Orange; diff --git a/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/PortlessLinksViewModel.cs b/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/PortlessLinksViewModel.cs index 31e497e..914f7eb 100644 --- a/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/PortlessLinksViewModel.cs +++ b/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/PortlessLinksViewModel.cs @@ -14,8 +14,8 @@ namespace AIStudio.Wpf.DiagramDesigner.Demo.ViewModels "All you need to specify is the shape of your nodes in order to calculate the connection points."; DiagramViewModel = new DiagramViewModel(); - DiagramViewModel.PageSizeType = PageSizeType.Custom; - DiagramViewModel.PageSize = new Size(double.NaN, double.NaN); + DiagramViewModel.DiagramOption.LayoutOption.PageSizeType = PageSizeType.Custom; + DiagramViewModel.DiagramOption.LayoutOption.PageSize = new Size(double.NaN, double.NaN); DiagramViewModel.ColorViewModel = new ColorViewModel(); DiagramViewModel.ColorViewModel.FillColor.Color = System.Windows.Media.Colors.Orange; diff --git a/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Ports/ColoredPortViewModel.cs b/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Ports/ColoredPortViewModel.cs index 4d9289f..e26b8f9 100644 --- a/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Ports/ColoredPortViewModel.cs +++ b/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Ports/ColoredPortViewModel.cs @@ -16,8 +16,8 @@ namespace AIStudio.Wpf.DiagramDesigner.Demo.ViewModels "In this example, you can only attach links from/to ports with the same color."; DiagramViewModel = new DiagramViewModel(); - DiagramViewModel.PageSizeType = PageSizeType.Custom; - DiagramViewModel.PageSize = new Size(double.NaN, double.NaN); + DiagramViewModel.DiagramOption.LayoutOption.PageSizeType = PageSizeType.Custom; + DiagramViewModel.DiagramOption.LayoutOption.PageSize = new Size(double.NaN, double.NaN); DiagramViewModel.ColorViewModel = new ColorViewModel(); DiagramViewModel.ColorViewModel.FillColor.Color = System.Windows.Media.Colors.Orange; diff --git a/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Ports/InnerPortViewModel.cs b/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Ports/InnerPortViewModel.cs index addb8d4..d7ec0c2 100644 --- a/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Ports/InnerPortViewModel.cs +++ b/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Ports/InnerPortViewModel.cs @@ -13,8 +13,8 @@ namespace AIStudio.Wpf.DiagramDesigner.Demo.ViewModels Info = "You can add connection points inside a node"; DiagramViewModel = new DiagramViewModel(); - DiagramViewModel.PageSizeType = PageSizeType.Custom; - DiagramViewModel.PageSize = new Size(double.NaN, double.NaN); + DiagramViewModel.DiagramOption.LayoutOption.PageSizeType = PageSizeType.Custom; + DiagramViewModel.DiagramOption.LayoutOption.PageSize = new Size(double.NaN, double.NaN); DiagramViewModel.ColorViewModel = new ColorViewModel(); DiagramViewModel.ColorViewModel.FillColor.Color = System.Windows.Media.Colors.Orange; diff --git a/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/SimpleViewModel.cs b/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/SimpleViewModel.cs index 2f73092..811dad1 100644 --- a/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/SimpleViewModel.cs +++ b/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/SimpleViewModel.cs @@ -13,8 +13,8 @@ namespace AIStudio.Wpf.DiagramDesigner.Demo.ViewModels Info = "A simple example of AIStudio.Wpf.DiagramDesigner."; DiagramViewModel = new DiagramViewModel(); - DiagramViewModel.PageSizeType = PageSizeType.Custom; - DiagramViewModel.PageSize = new Size(double.NaN, double.NaN); + DiagramViewModel.DiagramOption.LayoutOption.PageSizeType = PageSizeType.Custom; + DiagramViewModel.DiagramOption.LayoutOption.PageSize = new Size(double.NaN, double.NaN); DiagramViewModel.ColorViewModel = new ColorViewModel(); DiagramViewModel.ColorViewModel.FillColor.Color = System.Windows.Media.Colors.Orange; diff --git a/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/SnapToGridViewModel.cs b/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/SnapToGridViewModel.cs index 982cf6c..11c90e4 100644 --- a/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/SnapToGridViewModel.cs +++ b/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/SnapToGridViewModel.cs @@ -13,10 +13,10 @@ namespace AIStudio.Wpf.DiagramDesigner.Demo.ViewModels Info = "This diagram has a grid size of 100, moving nodes will make them automatically snap."; DiagramViewModel = new DiagramViewModel(); - DiagramViewModel.CellHorizontalAlignment = CellHorizontalAlignment.Center; - DiagramViewModel.CellVerticalAlignment = CellVerticalAlignment.Center; - DiagramViewModel.PageSizeType = PageSizeType.Custom; - DiagramViewModel.PageSize = new Size(double.NaN, double.NaN); + DiagramViewModel.DiagramOption.LayoutOption.CellHorizontalAlignment = CellHorizontalAlignment.Center; + DiagramViewModel.DiagramOption.LayoutOption.CellVerticalAlignment = CellVerticalAlignment.Center; + DiagramViewModel.DiagramOption.LayoutOption.PageSizeType = PageSizeType.Custom; + DiagramViewModel.DiagramOption.LayoutOption.PageSize = new Size(double.NaN, double.NaN); DiagramViewModel.ColorViewModel = new ColorViewModel(); DiagramViewModel.ColorViewModel.FillColor.Color = System.Windows.Media.Colors.Orange; diff --git a/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Texts/AlignmentViewModel.cs b/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Texts/AlignmentViewModel.cs index 4127d03..5236221 100644 --- a/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Texts/AlignmentViewModel.cs +++ b/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Texts/AlignmentViewModel.cs @@ -13,8 +13,8 @@ namespace AIStudio.Wpf.DiagramDesigner.Demo.ViewModels Info = "A text node of AIStudio.Wpf.DiagramDesigner."; DiagramViewModel = new DiagramViewModel(); - DiagramViewModel.PageSizeType = PageSizeType.Custom; - DiagramViewModel.PageSize = new Size(double.NaN, double.NaN); + DiagramViewModel.DiagramOption.LayoutOption.PageSizeType = PageSizeType.Custom; + DiagramViewModel.DiagramOption.LayoutOption.PageSize = new Size(double.NaN, double.NaN); DiagramViewModel.ColorViewModel = new ColorViewModel(); TextDesignerItemViewModel node1 = new TextDesignerItemViewModel(DiagramViewModel) { Left = 50, Top = 50, ItemWidth = 230, Text = "竹外桃花三两枝,春江水暖鸭先知。\r\n蒌蒿满地芦芽短,正是河豚欲上时。" }; diff --git a/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Texts/ColorTextViewModel.cs b/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Texts/ColorTextViewModel.cs index 45bfafd..e7e9992 100644 --- a/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Texts/ColorTextViewModel.cs +++ b/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Texts/ColorTextViewModel.cs @@ -13,8 +13,8 @@ namespace AIStudio.Wpf.DiagramDesigner.Demo.ViewModels.Texts Info = "A text node of AIStudio.Wpf.DiagramDesigner."; DiagramViewModel = new DiagramViewModel(); - DiagramViewModel.PageSizeType = PageSizeType.Custom; - DiagramViewModel.PageSize = new Size(double.NaN, double.NaN); + DiagramViewModel.DiagramOption.LayoutOption.PageSizeType = PageSizeType.Custom; + DiagramViewModel.DiagramOption.LayoutOption.PageSize = new Size(double.NaN, double.NaN); DiagramViewModel.ColorViewModel = new ColorViewModel(); TextDesignerItemViewModel node1 = new TextDesignerItemViewModel(DiagramViewModel) { Left = 50, Top = 50, ItemWidth = 230, Text = "竹外桃花三两枝,春江水暖鸭先知。\r\n蒌蒿满地芦芽短,正是河豚欲上时。" }; diff --git a/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Texts/FontSizeViewModel.cs b/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Texts/FontSizeViewModel.cs index a5f9694..722745c 100644 --- a/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Texts/FontSizeViewModel.cs +++ b/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Texts/FontSizeViewModel.cs @@ -13,8 +13,8 @@ namespace AIStudio.Wpf.DiagramDesigner.Demo.ViewModels.Texts Info = "A text node of AIStudio.Wpf.DiagramDesigner."; DiagramViewModel = new DiagramViewModel(); - DiagramViewModel.PageSizeType = PageSizeType.Custom; - DiagramViewModel.PageSize = new Size(double.NaN, double.NaN); + DiagramViewModel.DiagramOption.LayoutOption.PageSizeType = PageSizeType.Custom; + DiagramViewModel.DiagramOption.LayoutOption.PageSize = new Size(double.NaN, double.NaN); DiagramViewModel.ColorViewModel = new ColorViewModel(); TextDesignerItemViewModel node1 = new TextDesignerItemViewModel(DiagramViewModel) { Left = 30, Top = 50, ItemWidth = 260, Text = "竹外桃花三两枝,春江水暖鸭先知。\r\n蒌蒿满地芦芽短,正是河豚欲上时。" }; diff --git a/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Texts/OutlineTextViewModel.cs b/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Texts/OutlineTextViewModel.cs index aa5696f..36dafc4 100644 --- a/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Texts/OutlineTextViewModel.cs +++ b/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Texts/OutlineTextViewModel.cs @@ -14,8 +14,8 @@ namespace AIStudio.Wpf.DiagramDesigner.Demo.ViewModels.Texts Info = "A text node of AIStudio.Wpf.DiagramDesigner."; DiagramViewModel = new DiagramViewModel(); - DiagramViewModel.PageSizeType = PageSizeType.Custom; - DiagramViewModel.PageSize = new Size(double.NaN, double.NaN); + DiagramViewModel.DiagramOption.LayoutOption.PageSizeType = PageSizeType.Custom; + DiagramViewModel.DiagramOption.LayoutOption.PageSize = new Size(double.NaN, double.NaN); DiagramViewModel.ColorViewModel = new ColorViewModel(); OutLineTextDesignerItemViewModel node1 = new OutLineTextDesignerItemViewModel(DiagramViewModel) { Left = 50, Top = 50, ItemWidth = 600, ItemHeight = 100, Text = "竹外桃花三两枝,春江水暖鸭先知。\r\n蒌蒿满地芦芽短,正是河豚欲上时。" }; diff --git a/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Texts/TextViewModel.cs b/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Texts/TextViewModel.cs index cf34922..19f2c59 100644 --- a/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Texts/TextViewModel.cs +++ b/Demos/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/Texts/TextViewModel.cs @@ -13,8 +13,8 @@ namespace AIStudio.Wpf.DiagramDesigner.Demo.ViewModels.Texts Info = "A text node of AIStudio.Wpf.DiagramDesigner."; DiagramViewModel = new DiagramViewModel(); - DiagramViewModel.PageSizeType = PageSizeType.Custom; - DiagramViewModel.PageSize = new Size(double.NaN, double.NaN); + DiagramViewModel.DiagramOption.LayoutOption.PageSizeType = PageSizeType.Custom; + DiagramViewModel.DiagramOption.LayoutOption.PageSize = new Size(double.NaN, double.NaN); DiagramViewModel.ColorViewModel = new ColorViewModel(); TextDesignerItemViewModel node1 = new TextDesignerItemViewModel(DiagramViewModel) { Left = 50, Top = 50, ItemWidth=230, Text = "竹外桃花三两枝,春江水暖鸭先知。\r\n蒌蒿满地芦芽短,正是河豚欲上时。" }; diff --git a/Extensions/AIStudio.Wpf.Flowchart/Controls/FlowchartEditor.xaml.cs b/Extensions/AIStudio.Wpf.Flowchart/Controls/FlowchartEditor.xaml.cs index e011eaf..832daeb 100644 --- a/Extensions/AIStudio.Wpf.Flowchart/Controls/FlowchartEditor.xaml.cs +++ b/Extensions/AIStudio.Wpf.Flowchart/Controls/FlowchartEditor.xaml.cs @@ -33,13 +33,13 @@ namespace AIStudio.Wpf.Flowchart.Controls public FlowchartEditor() { _diagramViewModel = new DiagramViewModel(); - _diagramViewModel.ShowGrid = true; - _diagramViewModel.GridCellSize = new SizeBase(125 / ScreenHelper.ScreenScale, 125 / ScreenHelper.ScreenScale); - _diagramViewModel.GridMarginSize = new Size(0, 0); - _diagramViewModel.CellHorizontalAlignment = CellHorizontalAlignment.Center; - _diagramViewModel.CellVerticalAlignment = CellVerticalAlignment.Center; - _diagramViewModel.PageSizeType = PageSizeType.Custom; - _diagramViewModel.PageSize = new SizeBase(double.NaN, double.NaN); + _diagramViewModel.DiagramOption.LayoutOption.ShowGrid = true; + _diagramViewModel.DiagramOption.LayoutOption.GridCellSize = new SizeBase(125 / ScreenHelper.ScreenScale, 125 / ScreenHelper.ScreenScale); + _diagramViewModel.DiagramOption.LayoutOption.GridMarginSize = new Size(0, 0); + _diagramViewModel.DiagramOption.LayoutOption.CellHorizontalAlignment = CellHorizontalAlignment.Center; + _diagramViewModel.DiagramOption.LayoutOption.CellVerticalAlignment = CellVerticalAlignment.Center; + _diagramViewModel.DiagramOption.LayoutOption.PageSizeType = PageSizeType.Custom; + _diagramViewModel.DiagramOption.LayoutOption.PageSize = new SizeBase(double.NaN, double.NaN); _diagramViewModel.ColorViewModel = new ColorViewModel() { LineWidth = 2 }; _diagramViewModel.DrawModeViewModel = new DrawModeViewModel() { LineDrawMode = DrawMode.ConnectingLineSmooth }; diff --git a/Extensions/AIStudio.Wpf.Mind/Controls/MindEditor.xaml.cs b/Extensions/AIStudio.Wpf.Mind/Controls/MindEditor.xaml.cs index ced7e30..39c7f63 100644 --- a/Extensions/AIStudio.Wpf.Mind/Controls/MindEditor.xaml.cs +++ b/Extensions/AIStudio.Wpf.Mind/Controls/MindEditor.xaml.cs @@ -40,10 +40,10 @@ namespace AIStudio.Wpf.Mind.Controls public MindEditor() { _diagramViewModel = new MindDiagramViewModel(); - _diagramViewModel.GridMarginSize = new Size(0, 0); - _diagramViewModel.PageSizeType = PageSizeType.Custom; - _diagramViewModel.PageSize = new SizeBase(1000d, 1000d); - _diagramViewModel.ShowGrid= false; + _diagramViewModel.DiagramOption.LayoutOption.GridMarginSize = new Size(0, 0); + _diagramViewModel.DiagramOption.LayoutOption.PageSizeType = PageSizeType.Custom; + _diagramViewModel.DiagramOption.LayoutOption.PageSize = new SizeBase(1000d, 1000d); + _diagramViewModel.DiagramOption.LayoutOption.ShowGrid = false; _diagramViewModel.DefaultZoomBox = true; _diagramViewModel.PropertyChanged += DiagramViewModel_PropertyChanged; diff --git a/Extensions/AIStudio.Wpf.Mind/ViewModels/MindDiagramViewModel.cs b/Extensions/AIStudio.Wpf.Mind/ViewModels/MindDiagramViewModel.cs index 918897c..82129fd 100644 --- a/Extensions/AIStudio.Wpf.Mind/ViewModels/MindDiagramViewModel.cs +++ b/Extensions/AIStudio.Wpf.Mind/ViewModels/MindDiagramViewModel.cs @@ -1132,11 +1132,11 @@ namespace AIStudio.Wpf.Mind.ViewModels var mindThemeModel = MindThemeHelper.GetTheme(newMindTheme); if (mindThemeModel?.Dark == true) { - PageBackground = Colors.Black; + DiagramOption.LayoutOption.PageBackground = Colors.Black; } else { - PageBackground = Colors.White; + DiagramOption.LayoutOption.PageBackground = Colors.White; } roots.ForEach(p => p.MindTheme = newMindTheme); roots.SelectMany(p => p.GetChildren(true)).ToList().ForEach(item => { item.ThemeChange(); }); @@ -1146,11 +1146,11 @@ namespace AIStudio.Wpf.Mind.ViewModels var mindThemeModel = MindThemeHelper.GetTheme(oldMindTheme); if (mindThemeModel?.Dark == true) { - PageBackground = Colors.Black; + DiagramOption.LayoutOption.PageBackground = Colors.Black; } else { - PageBackground = Colors.White; + DiagramOption.LayoutOption.PageBackground = Colors.White; } roots.ForEach(p => p.MindTheme = oldMindTheme); roots.SelectMany(p => p.GetChildren(true)).ToList().ForEach(item => { item.ThemeChange(); }); @@ -1275,9 +1275,9 @@ namespace AIStudio.Wpf.Mind.ViewModels { if (left == null) - left = (PageSize.Width - rootitem.ItemWidth) / 2; + left = (DiagramOption.LayoutOption.PageSize.Width - rootitem.ItemWidth) / 2; if (top == null) - top = (PageSize.Height - rootitem.ItemHeight) / 2; + top = (DiagramOption.LayoutOption.PageSize.Height - rootitem.ItemHeight) / 2; var offset = rootitem.Offset; rootitem.Left = left.Value; rootitem.Top = top.Value;