fix:图片插入

This commit is contained in:
2025-07-30 14:12:10 +08:00
parent 4f046987c6
commit 9cf70ae74e
3 changed files with 32 additions and 7 deletions
+23
View File
@@ -810,6 +810,29 @@ namespace Ink_Canvas {
{ {
// 使用辅助方法设置光标 // 使用辅助方法设置光标
SetCursorBasedOnEditingMode(sender as InkCanvas); SetCursorBasedOnEditingMode(sender as InkCanvas);
// 在选择模式下,如果点击的不是UI元素,则取消选择
if (inkCanvas.EditingMode == InkCanvasEditingMode.Select)
{
var hitTest = e.OriginalSource;
// 如果点击的不是图片或其他UI元素,则取消选择
if (!(hitTest is Image) && !(hitTest is MediaElement))
{
// 检查是否点击在已选择的UI元素上
bool clickedOnSelectedElement = false;
if (selectedUIElement != null)
{
var elementBounds = GetUIElementBounds(selectedUIElement);
var clickPoint = e.GetPosition(inkCanvas);
clickedOnSelectedElement = elementBounds.Contains(clickPoint);
}
if (!clickedOnSelectedElement)
{
DeselectUIElement();
}
}
}
} }
// 手写笔输入 // 手写笔输入
@@ -2086,6 +2086,10 @@ namespace Ink_Canvas {
InkCanvas.SetTop(image, 0); InkCanvas.SetTop(image, 0);
inkCanvas.Children.Add(image); inkCanvas.Children.Add(image);
// 添加鼠标事件处理,使图片可以被选择
image.MouseDown += UIElement_MouseDown;
image.IsManipulationEnabled = true;
timeMachine.CommitElementInsertHistory(image); timeMachine.CommitElementInsertHistory(image);
} }
} }
@@ -470,7 +470,7 @@ namespace Ink_Canvas {
// 图片工具栏相关 // 图片工具栏相关
private Border borderImageSelectionControl; private Border borderImageSelectionControl;
private double BorderImageSelectionControlWidth = 200.0; private double BorderImageSelectionControlWidth = 150.0; // 3个按钮 + 分隔线的实际宽度
private double BorderImageSelectionControlHeight = 80.0; private double BorderImageSelectionControlHeight = 80.0;
private enum ResizeDirection private enum ResizeDirection
@@ -597,16 +597,14 @@ namespace Ink_Canvas {
InitializeUIElementSelection(); InitializeUIElementSelection();
} }
// 根据元素类型显示不同的工具栏 // 显示拖拽手柄(所有UI元素都需要)
ShowResizeHandles();
// 根据元素类型显示特定的工具栏
if (element is Image) if (element is Image)
{ {
ShowImageToolbar(); ShowImageToolbar();
} }
else
{
// 对于其他UI元素,显示拖拽手柄
ShowResizeHandles();
}
} }
} }