From fd7b2dfb22e1951b78b4f4dffc0a682bbf16bd58 Mon Sep 17 00:00:00 2001 From: ChanginJolly Date: Thu, 2 May 2024 01:41:08 +0800 Subject: [PATCH] [fix] eraser and select funtion in MultiTouchMode --- Ink Canvas/MainWindow_cs/MW_TouchEvents.cs | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/Ink Canvas/MainWindow_cs/MW_TouchEvents.cs b/Ink Canvas/MainWindow_cs/MW_TouchEvents.cs index a610807..927c488 100644 --- a/Ink Canvas/MainWindow_cs/MW_TouchEvents.cs +++ b/Ink Canvas/MainWindow_cs/MW_TouchEvents.cs @@ -29,8 +29,8 @@ namespace Ink_Canvas { inkCanvas.StylusDown += MainWindow_StylusDown; inkCanvas.StylusMove += MainWindow_StylusMove; inkCanvas.StylusUp += MainWindow_StylusUp; - inkCanvas.TouchDown -= Main_Grid_TouchDown; inkCanvas.TouchDown += MainWindow_TouchDown; + inkCanvas.TouchDown -= Main_Grid_TouchDown; inkCanvas.EditingMode = InkCanvasEditingMode.None; inkCanvas.Children.Clear(); isInMultiTouchMode = true; @@ -39,6 +39,8 @@ namespace Ink_Canvas { } private void MainWindow_TouchDown(object sender, TouchEventArgs e) { + if (inkCanvas.EditingMode != InkCanvasEditingMode.Ink) return; + if (!isHidingSubPanelsWhenInking) { isHidingSubPanelsWhenInking = true; HideSubPanels(); // 书写时自动隐藏二级菜单 @@ -56,6 +58,7 @@ namespace Ink_Canvas { } private void MainWindow_StylusDown(object sender, StylusDownEventArgs e) { + if (inkCanvas.EditingMode != InkCanvasEditingMode.Ink) return; TouchDownPointsList[e.StylusDevice.Id] = InkCanvasEditingMode.None; } @@ -132,6 +135,8 @@ namespace Ink_Canvas { #endregion + + int lastTouchDownTime = 0, lastTouchUpTime = 0; Point iniP = new Point(0, 0); @@ -139,6 +144,7 @@ namespace Ink_Canvas { private bool forcePointEraser = true; private void Main_Grid_TouchDown(object sender, TouchEventArgs e) { + if (!isHidingSubPanelsWhenInking) { isHidingSubPanelsWhenInking = true; HideSubPanels(); // 书写时自动隐藏二级菜单 @@ -209,8 +215,6 @@ namespace Ink_Canvas { InkCanvasEditingMode lastInkCanvasEditingMode = InkCanvasEditingMode.Ink; bool isSingleFingerDragMode = false; - //防止衣服误触造成的墨迹消失 - private void inkCanvas_PreviewTouchDown(object sender, TouchEventArgs e) { dec.Add(e.TouchDevice.Id); //设备1个的时候,记录中心点