diff --git a/Ink Canvas/MainWindow_cs/MW_ClipboardHandler.cs b/Ink Canvas/MainWindow_cs/MW_ClipboardHandler.cs index 7d07d991..e83c4841 100644 --- a/Ink Canvas/MainWindow_cs/MW_ClipboardHandler.cs +++ b/Ink Canvas/MainWindow_cs/MW_ClipboardHandler.cs @@ -192,6 +192,8 @@ namespace Ink_Canvas elementForEvents.MouseWheel += Element_MouseWheel; // 触摸事件 + elementForEvents.TouchDown += Element_TouchDown; + elementForEvents.TouchUp += Element_TouchUp; elementForEvents.IsManipulationEnabled = true; elementForEvents.ManipulationDelta += Element_ManipulationDelta; elementForEvents.ManipulationCompleted += Element_ManipulationCompleted; diff --git a/Ink Canvas/MainWindow_cs/MW_ElementsControls.cs b/Ink Canvas/MainWindow_cs/MW_ElementsControls.cs index 78b2e547..ac6b6b0e 100644 --- a/Ink Canvas/MainWindow_cs/MW_ElementsControls.cs +++ b/Ink Canvas/MainWindow_cs/MW_ElementsControls.cs @@ -152,6 +152,19 @@ namespace Ink_Canvas } } + // 触摸释放事件 + private void Element_TouchUp(object sender, TouchEventArgs e) + { + if (sender is FrameworkElement element) + { + isDragging = false; + element.ReleaseTouchCapture(e.TouchDevice); + element.Cursor = Cursors.Hand; + + e.Handled = true; + } + } + // 鼠标移动事件 private void Element_MouseMove(object sender, MouseEventArgs e) { @@ -205,6 +218,34 @@ namespace Ink_Canvas } } + // 触摸按下事件 + private void Element_TouchDown(object sender, TouchEventArgs e) + { + if (sender is FrameworkElement element) + { + // 取消之前选中的元素 + if (currentSelectedElement != null && currentSelectedElement != element) + { + // 保存当前编辑模式 + var previousEditingMode = inkCanvas.EditingMode; + UnselectElement(currentSelectedElement); + // 恢复编辑模式 + inkCanvas.EditingMode = previousEditingMode; + } + + // 选中当前元素 + SelectElement(element); + + // 开始拖动 + isDragging = true; + dragStartPoint = e.GetTouchPoint(inkCanvas).Position; + element.CaptureTouch(e.TouchDevice); + element.Cursor = Cursors.SizeAll; + + e.Handled = true; + } + } + // 触摸操作事件 private void Element_ManipulationDelta(object sender, ManipulationDeltaEventArgs e) { diff --git a/Ink Canvas/MainWindow_cs/MW_FloatingBarIcons.cs b/Ink Canvas/MainWindow_cs/MW_FloatingBarIcons.cs index c9f76c4a..38ab4b61 100644 --- a/Ink Canvas/MainWindow_cs/MW_FloatingBarIcons.cs +++ b/Ink Canvas/MainWindow_cs/MW_FloatingBarIcons.cs @@ -3316,6 +3316,8 @@ namespace Ink_Canvas elementForEvents.MouseWheel += Element_MouseWheel; // 触摸事件 + elementForEvents.TouchDown += Element_TouchDown; + elementForEvents.TouchUp += Element_TouchUp; elementForEvents.IsManipulationEnabled = true; elementForEvents.ManipulationDelta += Element_ManipulationDelta; elementForEvents.ManipulationCompleted += Element_ManipulationCompleted; @@ -3387,6 +3389,8 @@ namespace Ink_Canvas elementForEvents.MouseWheel += Element_MouseWheel; // 触摸事件 + elementForEvents.TouchDown += Element_TouchDown; + elementForEvents.TouchUp += Element_TouchUp; elementForEvents.IsManipulationEnabled = true; elementForEvents.ManipulationDelta += Element_ManipulationDelta; elementForEvents.ManipulationCompleted += Element_ManipulationCompleted; @@ -3458,6 +3462,8 @@ namespace Ink_Canvas elementForEvents.MouseWheel += Element_MouseWheel; // 触摸事件 + elementForEvents.TouchDown += Element_TouchDown; + elementForEvents.TouchUp += Element_TouchUp; elementForEvents.IsManipulationEnabled = true; elementForEvents.ManipulationDelta += Element_ManipulationDelta; elementForEvents.ManipulationCompleted += Element_ManipulationCompleted; diff --git a/Ink Canvas/MainWindow_cs/MW_ImageInsert.cs b/Ink Canvas/MainWindow_cs/MW_ImageInsert.cs index 87d44ad4..42514b07 100644 --- a/Ink Canvas/MainWindow_cs/MW_ImageInsert.cs +++ b/Ink Canvas/MainWindow_cs/MW_ImageInsert.cs @@ -404,6 +404,8 @@ namespace Ink_Canvas image.MouseWheel += Element_MouseWheel; // 触摸事件 + image.TouchDown += Element_TouchDown; + image.TouchUp += Element_TouchUp; image.IsManipulationEnabled = true; image.ManipulationDelta += Element_ManipulationDelta; image.ManipulationCompleted += Element_ManipulationCompleted;