From 117a500f72b7a685265b637e55ef70f358fed1d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=89=BE=E7=AB=B9?= Date: Wed, 17 May 2023 22:47:51 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=80=E4=B8=AA=E5=B0=8Fbug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Erasable/DrawingDesignerItemViewModelBase.cs | 14 ++++++++------ .../Erasable/TextDrawingDesignerItemViewModel.cs | 8 ++++---- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/AIStudio.Wpf.DiagramDesigner/ViewModels/DrawingViewModel/Erasable/DrawingDesignerItemViewModelBase.cs b/AIStudio.Wpf.DiagramDesigner/ViewModels/DrawingViewModel/Erasable/DrawingDesignerItemViewModelBase.cs index 6b0ae72..1a75eb8 100644 --- a/AIStudio.Wpf.DiagramDesigner/ViewModels/DrawingViewModel/Erasable/DrawingDesignerItemViewModelBase.cs +++ b/AIStudio.Wpf.DiagramDesigner/ViewModels/DrawingViewModel/Erasable/DrawingDesignerItemViewModelBase.cs @@ -110,6 +110,8 @@ namespace AIStudio.Wpf.DiagramDesigner IsLoaded = false; if (Geometry != null) { + var left = Geometry.Bounds.Left; + var top = Geometry.Bounds.Top; if (Geometry.Transform is TransformGroup transformGroup) { TranslateTransform translateTransform = transformGroup.Children.OfType().FirstOrDefault(); @@ -130,7 +132,7 @@ namespace AIStudio.Wpf.DiagramDesigner Geometry = Geometry.GetWidenedPathGeometry(aPen); //可擦除,需要把Geometry转成几何图像,所以不能有填充色 } - UpdateLocation(); + UpdateLocation(new Point(left, top)); } IsLoaded = true; } @@ -234,21 +236,21 @@ namespace AIStudio.Wpf.DiagramDesigner base.AddToSelection(selected, clearother); } - protected virtual void UpdateLocation() + protected virtual void UpdateLocation(Point point) { if (Erasable) { ItemWidth = Geometry.Bounds.Width - ColorViewModel.LineWidth * 0.5; ItemHeight = Geometry.Bounds.Height - ColorViewModel.LineWidth * 0.5; - Left = Points[0].X; - Top = Points[0].Y; + Left = point.X; + Top = point.Y; } else { ItemWidth = Geometry.Bounds.Width + ColorViewModel.LineWidth * 0.5; ItemHeight = Geometry.Bounds.Height + ColorViewModel.LineWidth * 0.5; - Left = Points[0].X; - Top = Points[0].Y; + Left = point.X; + Top = point.Y; } } diff --git a/AIStudio.Wpf.DiagramDesigner/ViewModels/DrawingViewModel/Erasable/TextDrawingDesignerItemViewModel.cs b/AIStudio.Wpf.DiagramDesigner/ViewModels/DrawingViewModel/Erasable/TextDrawingDesignerItemViewModel.cs index 74fe327..1954ba6 100644 --- a/AIStudio.Wpf.DiagramDesigner/ViewModels/DrawingViewModel/Erasable/TextDrawingDesignerItemViewModel.cs +++ b/AIStudio.Wpf.DiagramDesigner/ViewModels/DrawingViewModel/Erasable/TextDrawingDesignerItemViewModel.cs @@ -56,7 +56,7 @@ namespace AIStudio.Wpf.DiagramDesigner new SolidColorBrush(FontViewModel.FontColor)); Geometry = formattedText.BuildGeometry(new Point()).GetFlattenedPathGeometry(); - UpdateLocation(); + UpdateLocation(Points[0]); IsLoaded = true; } this.SelectedDisable = Erasable; @@ -124,12 +124,12 @@ namespace AIStudio.Wpf.DiagramDesigner } } - protected override void UpdateLocation() + protected override void UpdateLocation(Point point) { ItemWidth = Geometry.Bounds.Width + 3; ItemHeight = Geometry.Bounds.Height + 3; - Left = Points[0].X; - Top = Points[0].Y; + Left = point.X; + Top = point.Y; } } }