From 28748a99ca14aaca1b6736c69bad72af2c89a2c2 Mon Sep 17 00:00:00 2001 From: CJKmkp <2564608840@qq.com> Date: Sat, 27 Sep 2025 17:58:50 +0800 Subject: [PATCH] =?UTF-8?q?improve:=E6=89=8B=E6=8E=8C=E6=93=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Ink Canvas/MainWindow_cs/MW_TouchEvents.cs | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/Ink Canvas/MainWindow_cs/MW_TouchEvents.cs b/Ink Canvas/MainWindow_cs/MW_TouchEvents.cs index 126581d5..4944ee0e 100644 --- a/Ink Canvas/MainWindow_cs/MW_TouchEvents.cs +++ b/Ink Canvas/MainWindow_cs/MW_TouchEvents.cs @@ -636,6 +636,16 @@ namespace Ink_Canvas inkCanvas.EraserShape = new EllipseStylusShape(boundWidth, boundWidth); inkCanvas.EditingMode = InkCanvasEditingMode.EraseByPoint; isPalmEraserActive = true; + + // 启用橡皮擦覆盖层显示手掌擦样式 + EnableEraserOverlay(); + // 更新橡皮擦大小以匹配手掌擦面积 + eraserWidth = boundWidth; + UpdateEraserStyle(); + // 显示初始橡皮擦反馈位置 + var touchPoint = e.GetTouchPoint(inkCanvas); + EraserOverlay_PointerDown(sender); + EraserOverlay_PointerMove(sender, touchPoint.Position); } } } @@ -707,6 +717,13 @@ namespace Ink_Canvas { lastTouchPositions[e.TouchDevice.Id] = e.GetTouchPoint(inkCanvas).Position; } + + // 如果手掌擦激活,更新橡皮擦反馈位置 + if (isPalmEraserActive) + { + var touchPoint = e.GetTouchPoint(inkCanvas); + EraserOverlay_PointerMove(sender, touchPoint.Position); + } } private void inkCanvas_PreviewTouchUp(object sender, TouchEventArgs e) @@ -773,6 +790,9 @@ namespace Ink_Canvas // 重置手掌擦状态 isPalmEraserActive = false; + + // 禁用橡皮擦覆盖层 + DisableEraserOverlay(); LogHelper.WriteLogToFile("Palm eraser state reset completed"); }