From 1e61d6351991d980f1255a7d5c86be3e990bdb83 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=89=BE=E7=AB=B9?= Date: Sat, 16 Mar 2024 15:51:59 +0800 Subject: [PATCH] =?UTF-8?q?image=E4=BF=9D=E5=AD=98=E5=90=8E=E6=89=93?= =?UTF-8?q?=E5=BC=80bug=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Converters/ClipConverter.cs | 10 +++++----- .../ViewModels/DefaultViewModel/ImageItemViewModel.cs | 1 + 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/AIStudio.Wpf.DiagramDesigner/Converters/ClipConverter.cs b/AIStudio.Wpf.DiagramDesigner/Converters/ClipConverter.cs index 8c5aadd..dbb4482 100644 --- a/AIStudio.Wpf.DiagramDesigner/Converters/ClipConverter.cs +++ b/AIStudio.Wpf.DiagramDesigner/Converters/ClipConverter.cs @@ -16,8 +16,8 @@ namespace AIStudio.Wpf.DiagramDesigner { if (value is ImageItemViewModel imageItemViewModel) { - double xradio = imageItemViewModel.ItemWidth / imageItemViewModel.ImageWidth; - double yradio = imageItemViewModel.ItemHeight / imageItemViewModel.ImageHeight; + double xradio = imageItemViewModel.ImageWidth == 0 ? 0 : imageItemViewModel.ItemWidth / imageItemViewModel.ImageWidth; + double yradio = imageItemViewModel.ImageHeight == 0 ? 0 : imageItemViewModel.ItemHeight / imageItemViewModel.ImageHeight; if (para == "Clip") { if (imageItemViewModel.ClipMode == ClipMode.RectangleGeometry) @@ -29,7 +29,7 @@ namespace AIStudio.Wpf.DiagramDesigner } else { - rectangle.Rect = new System.Windows.Rect(imageItemViewModel.ResizeMargin.Left, imageItemViewModel.ResizeMargin.Top , imageItemViewModel.ItemWidth - (imageItemViewModel.ResizeMargin.Left + imageItemViewModel.ResizeMargin.Right), imageItemViewModel.ItemHeight - (imageItemViewModel.ResizeMargin.Top + imageItemViewModel.ResizeMargin.Bottom)); + rectangle.Rect = new System.Windows.Rect(imageItemViewModel.ResizeMargin.Left, imageItemViewModel.ResizeMargin.Top, imageItemViewModel.ItemWidth - (imageItemViewModel.ResizeMargin.Left + imageItemViewModel.ResizeMargin.Right), imageItemViewModel.ItemHeight - (imageItemViewModel.ResizeMargin.Top + imageItemViewModel.ResizeMargin.Bottom)); } return rectangle; } @@ -37,14 +37,14 @@ namespace AIStudio.Wpf.DiagramDesigner { EllipseGeometry ellipse = new EllipseGeometry(); if (imageItemViewModel.ResizeMode == false) - { + { ellipse.Center = new Point(imageItemViewModel.ResizeMargin.Left * xradio + imageItemViewModel.ItemWidth / 2, imageItemViewModel.ResizeMargin.Top * yradio + imageItemViewModel.ItemHeight / 2); ellipse.RadiusX = imageItemViewModel.ItemWidth / 2; ellipse.RadiusY = imageItemViewModel.ItemHeight / 2; } else { - ellipse.Center = new Point(imageItemViewModel.ResizeMargin.Left + (imageItemViewModel.ItemWidth - imageItemViewModel.ResizeMargin.Left - imageItemViewModel.ResizeMargin.Right) / 2, imageItemViewModel.ResizeMargin.Top + (imageItemViewModel.ItemHeight - imageItemViewModel.ResizeMargin.Top - imageItemViewModel.ResizeMargin.Bottom)/ 2); + ellipse.Center = new Point(imageItemViewModel.ResizeMargin.Left + (imageItemViewModel.ItemWidth - imageItemViewModel.ResizeMargin.Left - imageItemViewModel.ResizeMargin.Right) / 2, imageItemViewModel.ResizeMargin.Top + (imageItemViewModel.ItemHeight - imageItemViewModel.ResizeMargin.Top - imageItemViewModel.ResizeMargin.Bottom) / 2); ellipse.RadiusX = (imageItemViewModel.ItemWidth - imageItemViewModel.ResizeMargin.Left - imageItemViewModel.ResizeMargin.Right) / 2; ellipse.RadiusY = (imageItemViewModel.ItemHeight - imageItemViewModel.ResizeMargin.Top - imageItemViewModel.ResizeMargin.Bottom) / 2; } diff --git a/AIStudio.Wpf.DiagramDesigner/ViewModels/DefaultViewModel/ImageItemViewModel.cs b/AIStudio.Wpf.DiagramDesigner/ViewModels/DefaultViewModel/ImageItemViewModel.cs index c7b273f..08ec4cb 100644 --- a/AIStudio.Wpf.DiagramDesigner/ViewModels/DefaultViewModel/ImageItemViewModel.cs +++ b/AIStudio.Wpf.DiagramDesigner/ViewModels/DefaultViewModel/ImageItemViewModel.cs @@ -61,6 +61,7 @@ namespace AIStudio.Wpf.DiagramDesigner { this.Icon = designer.Icon; Suffix = Path.GetExtension(this.Icon).ToLower(); + InitWidthAndHeight(); } }