From 8b327fd715359dccb184af35f7181320d178e69d Mon Sep 17 00:00:00 2001 From: CJKmkp <2564608840@qq.com> Date: Sun, 10 Aug 2025 14:08:07 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E5=87=A0=E4=BD=95=E8=A7=A6=E6=91=B8?= =?UTF-8?q?=E7=BB=98=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Ink Canvas/MainWindow_cs/MW_ShapeDrawing.cs | 55 +++++++++++++++++---- 1 file changed, 45 insertions(+), 10 deletions(-) diff --git a/Ink Canvas/MainWindow_cs/MW_ShapeDrawing.cs b/Ink Canvas/MainWindow_cs/MW_ShapeDrawing.cs index eda21e3c..b2a659f0 100644 --- a/Ink Canvas/MainWindow_cs/MW_ShapeDrawing.cs +++ b/Ink Canvas/MainWindow_cs/MW_ShapeDrawing.cs @@ -176,13 +176,20 @@ namespace Ink_Canvas { await CheckIsDrawingShapesInMultiTouchMode(); EnterShapeDrawingMode(1); - CancelSingleFingerDragMode(); lastMouseDownSender = null; - if (isLongPressSelected) + + // 先保存长按状态,避免被CancelSingleFingerDragMode重置 + bool wasLongPressed = isLongPressSelected; + + CancelSingleFingerDragMode(); + + if (wasLongPressed) { if (ToggleSwitchDrawShapeBorderAutoHide.IsOn) CollapseBorderDrawShape(); var dA = new DoubleAnimation(1, 1, new Duration(TimeSpan.FromMilliseconds(0))); ImageDrawLine.BeginAnimation(OpacityProperty, dA); + // 恢复长按状态,保持工具选中 + isLongPressSelected = true; } DrawShapePromptToPen(); } @@ -191,13 +198,20 @@ namespace Ink_Canvas { await CheckIsDrawingShapesInMultiTouchMode(); EnterShapeDrawingMode(8); - CancelSingleFingerDragMode(); lastMouseDownSender = null; - if (isLongPressSelected) + + // 先保存长按状态,避免被CancelSingleFingerDragMode重置 + bool wasLongPressed = isLongPressSelected; + + CancelSingleFingerDragMode(); + + if (wasLongPressed) { if (ToggleSwitchDrawShapeBorderAutoHide.IsOn) CollapseBorderDrawShape(); var dA = new DoubleAnimation(1, 1, new Duration(TimeSpan.FromMilliseconds(0))); ImageDrawDashedLine.BeginAnimation(OpacityProperty, dA); + // 恢复长按状态,保持工具选中 + isLongPressSelected = true; } DrawShapePromptToPen(); } @@ -206,13 +220,20 @@ namespace Ink_Canvas { await CheckIsDrawingShapesInMultiTouchMode(); EnterShapeDrawingMode(18); - CancelSingleFingerDragMode(); lastMouseDownSender = null; - if (isLongPressSelected) + + // 先保存长按状态,避免被CancelSingleFingerDragMode重置 + bool wasLongPressed = isLongPressSelected; + + CancelSingleFingerDragMode(); + + if (wasLongPressed) { if (ToggleSwitchDrawShapeBorderAutoHide.IsOn) CollapseBorderDrawShape(); var dA = new DoubleAnimation(1, 1, new Duration(TimeSpan.FromMilliseconds(0))); ImageDrawDotLine.BeginAnimation(OpacityProperty, dA); + // 恢复长按状态,保持工具选中 + isLongPressSelected = true; } DrawShapePromptToPen(); } @@ -221,13 +242,20 @@ namespace Ink_Canvas { await CheckIsDrawingShapesInMultiTouchMode(); EnterShapeDrawingMode(2); - CancelSingleFingerDragMode(); lastMouseDownSender = null; - if (isLongPressSelected) + + // 先保存长按状态,避免被CancelSingleFingerDragMode重置 + bool wasLongPressed = isLongPressSelected; + + CancelSingleFingerDragMode(); + + if (wasLongPressed) { if (ToggleSwitchDrawShapeBorderAutoHide.IsOn) CollapseBorderDrawShape(); var dA = new DoubleAnimation(1, 1, new Duration(TimeSpan.FromMilliseconds(0))); ImageDrawArrow.BeginAnimation(OpacityProperty, dA); + // 恢复长按状态,保持工具选中 + isLongPressSelected = true; } DrawShapePromptToPen(); } @@ -236,13 +264,20 @@ namespace Ink_Canvas { await CheckIsDrawingShapesInMultiTouchMode(); EnterShapeDrawingMode(15); - CancelSingleFingerDragMode(); lastMouseDownSender = null; - if (isLongPressSelected) + + // 先保存长按状态,避免被CancelSingleFingerDragMode重置 + bool wasLongPressed = isLongPressSelected; + + CancelSingleFingerDragMode(); + + if (wasLongPressed) { if (ToggleSwitchDrawShapeBorderAutoHide.IsOn) CollapseBorderDrawShape(); var dA = new DoubleAnimation(1, 1, new Duration(TimeSpan.FromMilliseconds(0))); ImageDrawParallelLine.BeginAnimation(OpacityProperty, dA); + // 恢复长按状态,保持工具选中 + isLongPressSelected = true; } DrawShapePromptToPen(); }