From 867a74785365284a96ce492852f01ca523249ddd Mon Sep 17 00:00:00 2001 From: unknown <2564608840@qq.com> Date: Thu, 19 Jun 2025 22:49:11 +0800 Subject: [PATCH] =?UTF-8?q?improve:=E6=94=B9=E8=BF=9B=E5=A4=9A=E6=8C=87?= =?UTF-8?q?=E8=A7=A6=E6=91=B8=E6=93=8D=E4=BD=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Ink Canvas/MainWindow_cs/MW_SelectionGestures.cs | 8 +++++++- Ink Canvas/MainWindow_cs/MW_TouchEvents.cs | 7 ++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/Ink Canvas/MainWindow_cs/MW_SelectionGestures.cs b/Ink Canvas/MainWindow_cs/MW_SelectionGestures.cs index 7f973e76..3222a9cf 100644 --- a/Ink Canvas/MainWindow_cs/MW_SelectionGestures.cs +++ b/Ink Canvas/MainWindow_cs/MW_SelectionGestures.cs @@ -323,6 +323,11 @@ namespace Ink_Canvas { } private void GridInkCanvasSelectionCover_ManipulationDelta(object sender, ManipulationDeltaEventArgs e) { + // 手掌擦时禁止移动/缩放 + if (isLastTouchEraser || inkCanvas.EditingMode == InkCanvasEditingMode.EraseByPoint) + return; + // 三指及以上禁止缩放 + bool disableScale = dec.Count >= 3; try { if (dec.Count >= 1) { var md = e.DeltaManipulation; @@ -341,7 +346,8 @@ namespace Ink_Canvas { // Update matrix to reflect translation/rotation m.Translate(trans.X, trans.Y); // 移动 - m.ScaleAt(scale.X, scale.Y, center.X, center.Y); // 缩放 + if (!disableScale) + m.ScaleAt(scale.X, scale.Y, center.X, center.Y); // 缩放 var strokes = inkCanvas.GetSelectedStrokes(); if (StrokesSelectionClone.Count != 0) diff --git a/Ink Canvas/MainWindow_cs/MW_TouchEvents.cs b/Ink Canvas/MainWindow_cs/MW_TouchEvents.cs index 776fcf2b..545c742d 100644 --- a/Ink Canvas/MainWindow_cs/MW_TouchEvents.cs +++ b/Ink Canvas/MainWindow_cs/MW_TouchEvents.cs @@ -391,6 +391,11 @@ namespace Ink_Canvas { //} private void Main_Grid_ManipulationDelta(object sender, ManipulationDeltaEventArgs e) { + // 手掌擦时禁止移动/缩放 + if (isLastTouchEraser || inkCanvas.EditingMode == InkCanvasEditingMode.EraseByPoint) + return; + // 三指及以上禁止缩放 + bool disableScale = dec.Count >= 3; if (isInMultiTouchMode || !Settings.Gesture.IsEnableTwoFingerGesture) return; if ((dec.Count >= 2 && (Settings.PowerPointSettings.IsEnableTwoFingerGestureInPresentationMode || StackPanelPPTControls.Visibility != Visibility.Visible || @@ -415,7 +420,7 @@ namespace Ink_Canvas { if (Settings.Gesture.IsEnableTwoFingerRotation) m.RotateAt(rotate, center.X, center.Y); // 旋转 - if (Settings.Gesture.IsEnableTwoFingerZoom) + if (Settings.Gesture.IsEnableTwoFingerZoom && !disableScale) m.ScaleAt(scale.X, scale.Y, center.X, center.Y); // 缩放 }