fix:图片插入

This commit is contained in:
2025-07-30 14:18:45 +08:00
parent 9cf70ae74e
commit 9f9775e585
3 changed files with 130 additions and 27 deletions
@@ -30,9 +30,6 @@ namespace Ink_Canvas
image.Name = timestamp;
CenterAndScaleElement(image);
InkCanvas.SetLeft(image, 0);
InkCanvas.SetTop(image, 0);
inkCanvas.Children.Add(image);
// 添加鼠标事件处理,使图片可以被选择
@@ -262,17 +259,25 @@ namespace Ink_Canvas
double scaleY = maxHeight / element.Height;
double scale = Math.Min(scaleX, scaleY);
TransformGroup transformGroup = new TransformGroup();
transformGroup.Children.Add(new ScaleTransform(scale, scale));
// 直接设置元素的大小,而不使用RenderTransform
double newWidth = element.Width * scale;
double newHeight = element.Height * scale;
element.Width = newWidth;
element.Height = newHeight;
// 计算居中位置
double canvasWidth = inkCanvas.ActualWidth;
double canvasHeight = inkCanvas.ActualHeight;
double centerX = (canvasWidth - element.Width * scale) / 2;
double centerY = (canvasHeight - element.Height * scale) / 2;
double centerX = (canvasWidth - newWidth) / 2;
double centerY = (canvasHeight - newHeight) / 2;
transformGroup.Children.Add(new TranslateTransform(centerX, centerY));
// 直接设置位置,而不使用RenderTransform
InkCanvas.SetLeft(element, centerX);
InkCanvas.SetTop(element, centerY);
element.RenderTransform = transformGroup;
// 清除任何现有的RenderTransform
element.RenderTransform = Transform.Identity;
}
}
}