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);
// 在选择模式下,如果点击的不是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.Children.Add(image);
// 添加鼠标事件处理,使图片可以被选择
image.MouseDown += UIElement_MouseDown;
image.IsManipulationEnabled = true;
timeMachine.CommitElementInsertHistory(image);
}
}
@@ -470,7 +470,7 @@ namespace Ink_Canvas {
// 图片工具栏相关
private Border borderImageSelectionControl;
private double BorderImageSelectionControlWidth = 200.0;
private double BorderImageSelectionControlWidth = 150.0; // 3个按钮 + 分隔线的实际宽度
private double BorderImageSelectionControlHeight = 80.0;
private enum ResizeDirection
@@ -597,16 +597,14 @@ namespace Ink_Canvas {
InitializeUIElementSelection();
}
// 根据元素类型显示不同的工具栏
// 显示拖拽手柄(所有UI元素都需要)
ShowResizeHandles();
// 根据元素类型显示特定的工具栏
if (element is Image)
{
ShowImageToolbar();
}
else
{
// 对于其他UI元素,显示拖拽手柄
ShowResizeHandles();
}
}
}