diff --git a/Ink Canvas/MainWindow_cs/MW_ShapeDrawing.cs b/Ink Canvas/MainWindow_cs/MW_ShapeDrawing.cs index 5e38e500..daff6d14 100644 --- a/Ink Canvas/MainWindow_cs/MW_ShapeDrawing.cs +++ b/Ink Canvas/MainWindow_cs/MW_ShapeDrawing.cs @@ -1828,6 +1828,11 @@ namespace Ink_Canvas private void inkCanvas_MouseMove(object sender, MouseEventArgs e) { if (isMouseDown) MouseTouchMove(e.GetPosition(inkCanvas)); + + if (Settings.Canvas.IsShowCursor) + { + SetCursorBasedOnEditingMode(inkCanvas); + } } private void inkCanvas_MouseUp(object sender, MouseButtonEventArgs e) @@ -2054,13 +2059,21 @@ namespace Ink_Canvas } private void MainWindow_OnMouseMove(object sender, MouseEventArgs e) { - if (e.StylusDevice == null) + if (Settings.Canvas.IsShowCursor) { System.Windows.Forms.Cursor.Show(); + SetCursorBasedOnEditingMode(inkCanvas); } else { - System.Windows.Forms.Cursor.Hide(); + if (e.StylusDevice == null) + { + System.Windows.Forms.Cursor.Show(); + } + else + { + System.Windows.Forms.Cursor.Hide(); + } } } } diff --git a/Ink Canvas/MainWindow_cs/MW_TouchEvents.cs b/Ink Canvas/MainWindow_cs/MW_TouchEvents.cs index 421ff4f4..a544c5cf 100644 --- a/Ink Canvas/MainWindow_cs/MW_TouchEvents.cs +++ b/Ink Canvas/MainWindow_cs/MW_TouchEvents.cs @@ -289,33 +289,11 @@ namespace Ink_Canvas LogHelper.WriteLogToFile("保持当前线擦模式"); } } - SetCursorBasedOnEditingMode(inkCanvas); - inkCanvas.CaptureStylus(); ViewboxFloatingBar.IsHitTestVisible = false; BlackboardUIGridForInkReplay.IsHitTestVisible = false; - // 确保手写笔模式下显示光标 - if (Settings.Canvas.IsShowCursor) - { - inkCanvas.ForceCursor = true; - inkCanvas.UseCustomCursor = true; - - // 根据当前编辑模式设置不同的光标 - if (inkCanvas.EditingMode == InkCanvasEditingMode.EraseByPoint) - { - inkCanvas.Cursor = Cursors.Arrow; - } - else if (inkCanvas.EditingMode == InkCanvasEditingMode.Ink) - { - var sri = Application.GetResourceStream(new Uri("Resources/Cursors/Pen.cur", UriKind.Relative)); - if (sri != null) - inkCanvas.Cursor = new Cursor(sri.Stream); - } - - // 强制显示光标 - System.Windows.Forms.Cursor.Show(); - } + SetCursorBasedOnEditingMode(inkCanvas); if (inkCanvas.EditingMode == InkCanvasEditingMode.EraseByPoint || inkCanvas.EditingMode == InkCanvasEditingMode.EraseByStroke @@ -416,6 +394,7 @@ namespace Ink_Canvas inkCanvas.ReleaseStylusCapture(); ViewboxFloatingBar.IsHitTestVisible = true; BlackboardUIGridForInkReplay.IsHitTestVisible = true; + SetCursorBasedOnEditingMode(inkCanvas); } private void MainWindow_StylusMove(object sender, StylusEventArgs e) @@ -439,13 +418,7 @@ namespace Ink_Canvas } catch { } - // 确保手写笔移动时光标保持可见 - if (Settings.Canvas.IsShowCursor) - { - inkCanvas.ForceCursor = true; - inkCanvas.UseCustomCursor = true; - System.Windows.Forms.Cursor.Show(); - } + SetCursorBasedOnEditingMode(inkCanvas); var strokeVisual = GetStrokeVisual(e.StylusDevice.Id); var stylusPointCollection = e.GetStylusPoints(this);