diff --git a/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/DesignerItemViewModelBase.cs b/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/DesignerItemViewModelBase.cs index 0b46d91..a49a791 100644 --- a/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/DesignerItemViewModelBase.cs +++ b/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/DesignerItemViewModelBase.cs @@ -74,7 +74,7 @@ namespace AIStudio.Wpf.DiagramDesigner } } } - #region 属性 + #region public FullyCreatedConnectorInfo FirstConnector { @@ -369,6 +369,17 @@ namespace AIStudio.Wpf.DiagramDesigner } set { + if (Root?.DiagramOption?.LayoutOption?.BeyondBoundary > 0) + { + if (value + GetItemWidth() < Root.DiagramOption.LayoutOption.BeyondBoundary) + { + value = Root.DiagramOption.LayoutOption.BeyondBoundary - GetItemWidth(); + } + else if (value > Root.DiagramOption.LayoutOption.PageSize.Width - Root.DiagramOption.LayoutOption.BeyondBoundary) + { + value = Root.DiagramOption.LayoutOption.PageSize.Width - Root.DiagramOption.LayoutOption.BeyondBoundary; + } + } SetProperty(ref _left, value); } } @@ -384,6 +395,17 @@ namespace AIStudio.Wpf.DiagramDesigner } set { + if (Root?.DiagramOption?.LayoutOption?.BeyondBoundary > 0) + { + if (value + GetItemHeight() < Root.DiagramOption.LayoutOption.BeyondBoundary) + { + value = Root.DiagramOption.LayoutOption.BeyondBoundary - GetItemHeight(); + } + else if (value > Root.DiagramOption.LayoutOption.PageSize.Height - Root.DiagramOption.LayoutOption.BeyondBoundary) + { + value = Root.DiagramOption.LayoutOption.PageSize.Height - Root.DiagramOption.LayoutOption.BeyondBoundary; + } + } SetProperty(ref _top, value); } } diff --git a/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/DiagramOption.cs b/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/DiagramOption.cs index 49ffc2c..9594c7a 100644 --- a/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/DiagramOption.cs +++ b/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/DiagramOption.cs @@ -112,7 +112,7 @@ namespace AIStudio.Wpf.DiagramDesigner case PageSizeType.ESheet: size = new Size(863.6, 1117.6); break; } - return new Size(ScreenHelper.MmToWidth(size.Width), ScreenHelper.MmToWidth(size.Height)); + return new Size(size.Width, size.Height); } private PageSizeOrientation _pageSizeOrientation; @@ -370,6 +370,11 @@ namespace AIStudio.Wpf.DiagramDesigner { get; set; } = true; + + public double BeyondBoundary + { + get; set; + } = -1; } public class SnappingOption diff --git a/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/SelectableViewModelBase.cs b/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/SelectableViewModelBase.cs index 12e1966..5ff0997 100644 --- a/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/SelectableViewModelBase.cs +++ b/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/SelectableViewModelBase.cs @@ -142,6 +142,11 @@ namespace AIStudio.Wpf.DiagramDesigner AnimationViewModel = CopyHelper.Mapper(designerbase.AnimationItem); } + public object Tag + { + get; set; + } + public bool IsLoaded { get; set;