From 6c0e7c2e64b928e2417d94765fdf014babed1c6a Mon Sep 17 00:00:00 2001 From: CJK_mkp <113243675+CJKmkp@users.noreply.github.com> Date: Thu, 19 Jun 2025 11:25:15 +0800 Subject: [PATCH 1/3] =?UTF-8?q?fix:=E8=A7=A6=E5=B1=8F=E7=B1=BB=E9=97=AE?= =?UTF-8?q?=E9=A2=98=E5=8F=8A=E8=AE=BE=E7=BD=AE=E5=86=85=E7=82=B9=E5=87=BB?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Ink Canvas/MainWindow.xaml | 2 +- Ink Canvas/MainWindow.xaml.cs | 15 +++ Ink Canvas/MainWindow_cs/MW_BoardIcons.cs | 40 +----- .../MainWindow_cs/MW_FloatingBarIcons.cs | 96 ++++++++------ Ink Canvas/MainWindow_cs/MW_Settings.cs | 120 +++++++----------- Ink Canvas/MainWindow_cs/MW_ShapeDrawing.cs | 114 +++++++++++++++-- Ink Canvas/MainWindow_cs/MW_TouchEvents.cs | 51 +++++++- .../net472/InkCanvasForClass.g.resources | Bin 5180944 -> 5180943 bytes Ink Canvas/obj/Debug/net472/MainWindow.g.cs | 2 +- Ink Canvas/obj/Debug/net472/MainWindow.g.i.cs | 2 +- 10 files changed, 277 insertions(+), 165 deletions(-) diff --git a/Ink Canvas/MainWindow.xaml b/Ink Canvas/MainWindow.xaml index f078bfca..a4ffea28 100644 --- a/Ink Canvas/MainWindow.xaml +++ b/Ink Canvas/MainWindow.xaml @@ -170,7 +170,7 @@ - diff --git a/Ink Canvas/MainWindow.xaml.cs b/Ink Canvas/MainWindow.xaml.cs index ebf8d79c..4502b628 100644 --- a/Ink Canvas/MainWindow.xaml.cs +++ b/Ink Canvas/MainWindow.xaml.cs @@ -480,7 +480,22 @@ namespace Ink_Canvas { canvas.Cursor = Cursors.Cross; } + // 确保光标可见,无论是鼠标、触控还是手写笔 System.Windows.Forms.Cursor.Show(); + + // 强制应用光标设置 + canvas.ForceCursor = true; + + // 确保手写笔模式下也能显示光标 + if (Tablet.TabletDevices.Count > 0) { + foreach (TabletDevice device in Tablet.TabletDevices) { + if (device.Type == TabletDeviceType.Stylus) { + // 手写笔设备存在,强制显示光标 + System.Windows.Forms.Cursor.Show(); + break; + } + } + } } else { canvas.UseCustomCursor = false; canvas.ForceCursor = false; diff --git a/Ink Canvas/MainWindow_cs/MW_BoardIcons.cs b/Ink Canvas/MainWindow_cs/MW_BoardIcons.cs index 9c810095..ea820a31 100644 --- a/Ink Canvas/MainWindow_cs/MW_BoardIcons.cs +++ b/Ink Canvas/MainWindow_cs/MW_BoardIcons.cs @@ -36,42 +36,10 @@ namespace Ink_Canvas { } else { forceEraser = true; forcePointEraser = true; - double k = 1; - if (Settings.Canvas.EraserShapeType == 0) { - switch (BoardComboBoxEraserSize.SelectedIndex) - { - case 0: - k = 0.5; - break; - case 1: - k = 0.8; - break; - case 3: - k = 1.25; - break; - case 4: - k = 1.8; - break; - } - inkCanvas.EraserShape = new EllipseStylusShape(k * 90, k * 90); - } else if (Settings.Canvas.EraserShapeType == 1) { - switch (BoardComboBoxEraserSize.SelectedIndex) - { - case 0: - k = 0.7; - break; - case 1: - k = 0.9; - break; - case 3: - k = 1.2; - break; - case 4: - k = 1.6; - break; - } - inkCanvas.EraserShape = new RectangleStylusShape(k * 90 * 0.6, k * 90); - } + + // 使用统一的方法应用橡皮擦形状,确保一致性 + ApplyCurrentEraserShape(); + inkCanvas.EditingMode = InkCanvasEditingMode.EraseByPoint; drawingShapeMode = 0; diff --git a/Ink Canvas/MainWindow_cs/MW_FloatingBarIcons.cs b/Ink Canvas/MainWindow_cs/MW_FloatingBarIcons.cs index 754e4abd..e74d36a6 100644 --- a/Ink Canvas/MainWindow_cs/MW_FloatingBarIcons.cs +++ b/Ink Canvas/MainWindow_cs/MW_FloatingBarIcons.cs @@ -282,6 +282,7 @@ namespace Ink_Canvas { AnimationsHelper.HideWithSlideAndFade(BoardBorderRightPageListView); if (BorderSettings.Visibility == Visibility.Visible) { + // 设置蒙版为不可点击,并移除背景 BorderSettingsMask.IsHitTestVisible = false; BorderSettingsMask.Background = null; var sb = new Storyboard(); @@ -403,6 +404,11 @@ namespace Ink_Canvas { System.Windows.Controls.Canvas.SetLeft(FloatingbarSelectionBG, 28 * 5); break; } + case "shape": { + // 对图形模式进行特殊处理,不修改按钮UI状态 + // 只隐藏相关面板,但保持图形绘制模式 + break; + } } @@ -1422,44 +1428,9 @@ namespace Ink_Canvas { forceEraser = true; forcePointEraser = true; - if (Settings.Canvas.EraserShapeType == 0) { - double k = 1; - switch (Settings.Canvas.EraserSize) { - case 0: - k = 0.5; - break; - case 1: - k = 0.8; - break; - case 3: - k = 1.25; - break; - case 4: - k = 1.8; - break; - } - - inkCanvas.EraserShape = new EllipseStylusShape(k * 90, k * 90); - } - else if (Settings.Canvas.EraserShapeType == 1) { - double k = 1; - switch (Settings.Canvas.EraserSize) { - case 0: - k = 0.7; - break; - case 1: - k = 0.9; - break; - case 3: - k = 1.2; - break; - case 4: - k = 1.6; - break; - } - - inkCanvas.EraserShape = new RectangleStylusShape(k * 90 * 0.6, k * 90); - } + + // 即使手掌触发过面积擦,也强制应用当前的EraserShapeType设置 + ApplyCurrentEraserShape(); if (inkCanvas.EditingMode == InkCanvasEditingMode.EraseByPoint) { if (EraserSizePanel.Visibility == Visibility.Collapsed) { @@ -1498,6 +1469,33 @@ namespace Ink_Canvas { inkCanvas_EditingModeChanged(inkCanvas, null); CancelSingleFingerDragMode(); } + + // 新增方法,根据当前设置应用橡皮擦形状 + public void ApplyCurrentEraserShape() { + double k = 1; + switch (Settings.Canvas.EraserSize) { + case 0: + k = Settings.Canvas.EraserShapeType == 0 ? 0.5 : 0.7; + break; + case 1: + k = Settings.Canvas.EraserShapeType == 0 ? 0.8 : 0.9; + break; + case 3: + k = Settings.Canvas.EraserShapeType == 0 ? 1.25 : 1.2; + break; + case 4: + k = Settings.Canvas.EraserShapeType == 0 ? 1.8 : 1.6; + break; + } + + if (Settings.Canvas.EraserShapeType == 0) { + // 圆形擦 + inkCanvas.EraserShape = new EllipseStylusShape(k * 90, k * 90); + } else if (Settings.Canvas.EraserShapeType == 1) { + // 矩形黑板擦 + inkCanvas.EraserShape = new RectangleStylusShape(k * 90 * 0.6, k * 90); + } + } private void EraserIconByStrokes_Click(object sender, RoutedEventArgs e) { @@ -1549,7 +1547,8 @@ namespace Ink_Canvas { private void DrawShapePromptToPen() { if (isLongPressSelected == true) { - HideSubPanels("pen"); + // 如果是长按选中的状态,只隐藏面板,不切换到笔模式 + HideSubPanels("shape"); } else { if (StackPanelCanvasControls.Visibility == Visibility.Visible) @@ -1629,7 +1628,23 @@ namespace Ink_Canvas { private void SettingsOverlayClick(object sender, MouseButtonEventArgs e) { if (isOpeningOrHidingSettingsPane == true) return; - BtnSettings_Click(null, null); + + // 获取点击的位置 + Point clickPoint = e.GetPosition(BorderSettingsMask); + + // 获取BorderSettings的位置和大小 + Point settingsPosition = BorderSettings.TranslatePoint(new Point(0, 0), BorderSettingsMask); + Rect settingsRect = new Rect( + settingsPosition.X, + settingsPosition.Y, + BorderSettings.ActualWidth, + BorderSettings.ActualHeight + ); + + // 如果点击位置不在设置界面内部,才关闭设置界面 + if (!settingsRect.Contains(clickPoint)) { + BtnSettings_Click(null, null); + } } private bool isOpeningOrHidingSettingsPane = false; @@ -1639,6 +1654,7 @@ namespace Ink_Canvas { HideSubPanels(); } else { + // 设置蒙版为可点击,并添加半透明背景 BorderSettingsMask.IsHitTestVisible = true; BorderSettingsMask.Background = new SolidColorBrush(Color.FromArgb(1, 0, 0, 0)); SettingsPanelScrollViewer.ScrollToTop(); diff --git a/Ink Canvas/MainWindow_cs/MW_Settings.cs b/Ink Canvas/MainWindow_cs/MW_Settings.cs index f510d29f..9e5f0e9d 100644 --- a/Ink Canvas/MainWindow_cs/MW_Settings.cs +++ b/Ink Canvas/MainWindow_cs/MW_Settings.cs @@ -792,46 +792,17 @@ namespace Ink_Canvas { ComboBoxEraserSizeFloatingBar.SelectedIndex = s.SelectedIndex; ComboBoxEraserSize.SelectedIndex = s.SelectedIndex; } - if (Settings.Canvas.EraserShapeType == 0) { - double k = 1; - switch (s.SelectedIndex) { - case 0: - k = 0.5; - break; - case 1: - k = 0.8; - break; - case 3: - k = 1.25; - break; - case 4: - k = 1.8; - break; - } - - inkCanvas.EraserShape = new EllipseStylusShape(k * 90, k * 90); - } else if (Settings.Canvas.EraserShapeType == 1) { - double k = 1; - switch (s.SelectedIndex) { - case 0: - k = 0.7; - break; - case 1: - k = 0.9; - break; - case 3: - k = 1.2; - break; - case 4: - k = 1.6; - break; - } - - inkCanvas.EraserShape = new RectangleStylusShape(k * 90 * 0.6, k * 90); + + // 使用统一的方法应用橡皮擦形状 + ApplyCurrentEraserShape(); + + // 确保当前处于橡皮擦模式时能立即看到效果 + if (inkCanvas.EditingMode == InkCanvasEditingMode.EraseByPoint) { + // 先切换一下模式,再切回来,确保橡皮擦形状得到刷新 + inkCanvas.EditingMode = InkCanvasEditingMode.Ink; + inkCanvas.EditingMode = InkCanvasEditingMode.EraseByPoint; } - - inkCanvas.EditingMode = InkCanvasEditingMode.Ink; - inkCanvas.EditingMode = InkCanvasEditingMode.EraseByPoint; + SaveSettingsToFile(); } @@ -840,23 +811,11 @@ namespace Ink_Canvas { Settings.Canvas.EraserShapeType = 0; SaveSettingsToFile(); CheckEraserTypeTab(); - double k = 1; - switch (ComboBoxEraserSizeFloatingBar.SelectedIndex) { - case 0: - k = 0.5; - break; - case 1: - k = 0.8; - break; - case 3: - k = 1.25; - break; - case 4: - k = 1.8; - break; - } - - inkCanvas.EraserShape = new EllipseStylusShape(k * 90, k * 90); + + // 使用统一的方法应用橡皮擦形状 + ApplyCurrentEraserShape(); + + // 确保当前处于橡皮擦模式时能立即看到效果 inkCanvas.EditingMode = InkCanvasEditingMode.Ink; inkCanvas.EditingMode = InkCanvasEditingMode.EraseByPoint; } @@ -866,23 +825,11 @@ namespace Ink_Canvas { Settings.Canvas.EraserShapeType = 1; SaveSettingsToFile(); CheckEraserTypeTab(); - double k = 1; - switch (ComboBoxEraserSizeFloatingBar.SelectedIndex) { - case 0: - k = 0.7; - break; - case 1: - k = 0.9; - break; - case 3: - k = 1.2; - break; - case 4: - k = 1.6; - break; - } - - inkCanvas.EraserShape = new RectangleStylusShape(k * 90 * 0.6, k * 90); + + // 使用统一的方法应用橡皮擦形状 + ApplyCurrentEraserShape(); + + // 确保当前处于橡皮擦模式时能立即看到效果 inkCanvas.EditingMode = InkCanvasEditingMode.Ink; inkCanvas.EditingMode = InkCanvasEditingMode.EraseByPoint; } @@ -1347,29 +1294,52 @@ namespace Ink_Canvas { BoardToggleSwitchEnableMultiTouchMode.IsOn = ToggleSwitchEnableMultiTouchMode.IsOn; else ToggleSwitchEnableMultiTouchMode.IsOn = BoardToggleSwitchEnableMultiTouchMode.IsOn; + if (ToggleSwitchEnableMultiTouchMode.IsOn) { if (!isInMultiTouchMode) { + // 保存当前编辑模式和绘图工具状态 + InkCanvasEditingMode currentEditingMode = inkCanvas.EditingMode; + int currentDrawingShapeMode = drawingShapeMode; + bool currentForceEraser = forceEraser; + inkCanvas.StylusDown += MainWindow_StylusDown; inkCanvas.StylusMove += MainWindow_StylusMove; inkCanvas.StylusUp += MainWindow_StylusUp; inkCanvas.TouchDown += MainWindow_TouchDown; inkCanvas.TouchDown -= Main_Grid_TouchDown; + + // 先设为None再设回原来的模式,避免可能的事件冲突 inkCanvas.EditingMode = InkCanvasEditingMode.None; - inkCanvas.EditingMode = InkCanvasEditingMode.Ink; inkCanvas.Children.Clear(); isInMultiTouchMode = true; + + // 恢复到之前的编辑状态 + inkCanvas.EditingMode = currentEditingMode; + drawingShapeMode = currentDrawingShapeMode; + forceEraser = currentForceEraser; } } else { if (isInMultiTouchMode) { + // 保存当前编辑模式和绘图工具状态 + InkCanvasEditingMode currentEditingMode = inkCanvas.EditingMode; + int currentDrawingShapeMode = drawingShapeMode; + bool currentForceEraser = forceEraser; + inkCanvas.StylusDown -= MainWindow_StylusDown; inkCanvas.StylusMove -= MainWindow_StylusMove; inkCanvas.StylusUp -= MainWindow_StylusUp; inkCanvas.TouchDown -= MainWindow_TouchDown; inkCanvas.TouchDown += Main_Grid_TouchDown; + + // 先设为None再设回原来的模式,避免可能的事件冲突 inkCanvas.EditingMode = InkCanvasEditingMode.None; - inkCanvas.EditingMode = InkCanvasEditingMode.Ink; inkCanvas.Children.Clear(); isInMultiTouchMode = false; + + // 恢复到之前的编辑状态 + inkCanvas.EditingMode = currentEditingMode; + drawingShapeMode = currentDrawingShapeMode; + forceEraser = currentForceEraser; } } diff --git a/Ink Canvas/MainWindow_cs/MW_ShapeDrawing.cs b/Ink Canvas/MainWindow_cs/MW_ShapeDrawing.cs index 597fae62..354a5ee2 100644 --- a/Ink Canvas/MainWindow_cs/MW_ShapeDrawing.cs +++ b/Ink Canvas/MainWindow_cs/MW_ShapeDrawing.cs @@ -113,7 +113,16 @@ namespace Ink_Canvas { private Task CheckIsDrawingShapesInMultiTouchMode() { if (isInMultiTouchMode) { - ToggleSwitchEnableMultiTouchMode.IsOn = false; + // 不关闭多指书写模式,而是保存状态,暂时禁用多指书写相关的事件处理 + // 不再调用 ToggleSwitchEnableMultiTouchMode.IsOn = false; + + // 暂时禁用多指书写事件处理,以避免冲突 + inkCanvas.StylusDown -= MainWindow_StylusDown; + inkCanvas.StylusMove -= MainWindow_StylusMove; + inkCanvas.StylusUp -= MainWindow_StylusUp; + inkCanvas.TouchDown -= MainWindow_TouchDown; + + // 记录已暂时禁用多指书写模式,但实际上多指书写开关仍然为打开状态 lastIsInMultiTouchMode = true; } @@ -129,6 +138,14 @@ namespace Ink_Canvas { inkCanvas.IsManipulationEnabled = true; CancelSingleFingerDragMode(); } + else { + // 即使不是长按,也设置必要的绘图状态 + forceEraser = true; + drawingShapeMode = 1; + inkCanvas.EditingMode = InkCanvasEditingMode.None; + inkCanvas.IsManipulationEnabled = true; + isLongPressSelected = true; // 设置为选中状态,避免抬笔后切换回笔模式 + } lastMouseDownSender = null; if (isLongPressSelected) { @@ -189,6 +206,14 @@ namespace Ink_Canvas { inkCanvas.IsManipulationEnabled = true; CancelSingleFingerDragMode(); } + else { + // 即使不是长按,也设置必要的绘图状态 + forceEraser = true; + drawingShapeMode = 2; + inkCanvas.EditingMode = InkCanvasEditingMode.None; + inkCanvas.IsManipulationEnabled = true; + isLongPressSelected = true; // 设置为选中状态,避免抬笔后切换回笔模式 + } lastMouseDownSender = null; if (isLongPressSelected) { @@ -276,6 +301,7 @@ namespace Ink_Canvas { drawingShapeMode = 3; inkCanvas.EditingMode = InkCanvasEditingMode.None; inkCanvas.IsManipulationEnabled = true; + isLongPressSelected = true; // 设置为选中状态,避免抬笔后切换回笔模式 CancelSingleFingerDragMode(); DrawShapePromptToPen(); } @@ -435,7 +461,12 @@ namespace Ink_Canvas { if (isLastTouchEraser) return; //EraserContainer.Background = null; //ImageEraser.Visibility = Visibility.Visible; - if (isWaitUntilNextTouchDown) return; + + // 修复触屏状态下几何绘制功能不可用的问题 + // 在几何绘制模式下,即使isWaitUntilNextTouchDown为true,也应该处理触摸移动事件 + // 只有当多点触控时才需要等待下一次触摸 + if (isWaitUntilNextTouchDown && dec.Count > 1) return; + if (dec.Count > 1) { isWaitUntilNextTouchDown = true; try { @@ -447,6 +478,11 @@ namespace Ink_Canvas { } return; } + + // 在几何绘制模式下,确保处理单点触控的移动事件 + Point touchPoint = e.GetTouchPoint(inkCanvas).Position; + MouseTouchMove(touchPoint); + return; // 处理完几何绘制后直接返回,不执行后面的代码 } // 触摸移动时保持自定义光标显示 @@ -1346,8 +1382,34 @@ namespace Ink_Canvas { ViewboxFloatingBar.IsHitTestVisible = true; BlackboardUIGridForInkReplay.IsHitTestVisible = true; + // 在几何绘制模式下,确保正确处理触摸抬起事件 + if (drawingShapeMode != 0) { + // 如果是几何绘制模式,确保将临时绘制的图形添加到永久图形中 + if (lastTempStroke != null) { + // 将临时笔画添加到历史记录中 + var strokes = new StrokeCollection(); + strokes.Add(lastTempStroke); + timeMachine.CommitStrokeUserInputHistory(strokes); + // 清除临时笔画引用,以便下次绘制 + lastTempStroke = null; + } + + if (lastTempStrokeCollection != null && lastTempStrokeCollection.Count > 0) { + // 将临时笔画集合添加到历史记录中 + timeMachine.CommitStrokeUserInputHistory(lastTempStrokeCollection); + // 清除临时笔画集合引用,以便下次绘制 + lastTempStrokeCollection = new StrokeCollection(); + } + + // 如果不是长按选中的状态,则需要在抬起手指后重置isWaitUntilNextTouchDown + if (!isLongPressSelected && dec.Count == 0) { + isWaitUntilNextTouchDown = false; + } + } + inkCanvas_MouseUp(sender, null); - if (dec.Count == 0) isWaitUntilNextTouchDown = false; + // 修改此处逻辑,在长按选择图形模式下保持isWaitUntilNextTouchDown + if (dec.Count == 0 && !isLongPressSelected) isWaitUntilNextTouchDown = false; } private Stroke lastTempStroke = null; @@ -1537,17 +1599,37 @@ namespace Ink_Canvas { } if (lastIsInMultiTouchMode) { - ToggleSwitchEnableMultiTouchMode.IsOn = true; + // 不再重新启用开关,而是恢复多指书写相关的事件处理 + // ToggleSwitchEnableMultiTouchMode.IsOn = true; + + // 恢复多指书写事件处理 + inkCanvas.StylusDown += MainWindow_StylusDown; + inkCanvas.StylusMove += MainWindow_StylusMove; + inkCanvas.StylusUp += MainWindow_StylusUp; + inkCanvas.TouchDown += MainWindow_TouchDown; + lastIsInMultiTouchMode = false; } } + // 修改此处逻辑,确保在正确的情况下才切换回笔模式 if (drawingShapeMode != 9 && drawingShapeMode != 0 && drawingShapeMode != 24 && drawingShapeMode != 25) { - if (isLongPressSelected) { } + if (isLongPressSelected) { + // 如果是长按选中的情况,保持图形模式,不做任何切换 + isWaitUntilNextTouchDown = true; // 保持当前绘图模式直到下一次触摸 + } else { BtnPen_Click(null, null); //画完一次还原到笔模式 if (lastIsInMultiTouchMode) { - ToggleSwitchEnableMultiTouchMode.IsOn = true; + // 不再重新启用开关,而是恢复多指书写相关的事件处理 + // ToggleSwitchEnableMultiTouchMode.IsOn = true; + + // 恢复多指书写事件处理 + inkCanvas.StylusDown += MainWindow_StylusDown; + inkCanvas.StylusMove += MainWindow_StylusMove; + inkCanvas.StylusUp += MainWindow_StylusUp; + inkCanvas.TouchDown += MainWindow_TouchDown; + lastIsInMultiTouchMode = false; } } @@ -1573,7 +1655,15 @@ namespace Ink_Canvas { else { BtnPen_Click(null, null); //画完还原到笔模式 if (lastIsInMultiTouchMode) { - ToggleSwitchEnableMultiTouchMode.IsOn = true; + // 不再重新启用开关,而是恢复多指书写相关的事件处理 + // ToggleSwitchEnableMultiTouchMode.IsOn = true; + + // 恢复多指书写事件处理 + inkCanvas.StylusDown += MainWindow_StylusDown; + inkCanvas.StylusMove += MainWindow_StylusMove; + inkCanvas.StylusUp += MainWindow_StylusUp; + inkCanvas.TouchDown += MainWindow_TouchDown; + lastIsInMultiTouchMode = false; } @@ -1619,7 +1709,15 @@ namespace Ink_Canvas { BtnPen_Click(null, null); //画完还原到笔模式 if (lastIsInMultiTouchMode) { - ToggleSwitchEnableMultiTouchMode.IsOn = true; + // 不再重新启用开关,而是恢复多指书写相关的事件处理 + // ToggleSwitchEnableMultiTouchMode.IsOn = true; + + // 恢复多指书写事件处理 + inkCanvas.StylusDown += MainWindow_StylusDown; + inkCanvas.StylusMove += MainWindow_StylusMove; + inkCanvas.StylusUp += MainWindow_StylusUp; + inkCanvas.TouchDown += MainWindow_TouchDown; + lastIsInMultiTouchMode = false; } } diff --git a/Ink Canvas/MainWindow_cs/MW_TouchEvents.cs b/Ink Canvas/MainWindow_cs/MW_TouchEvents.cs index db9e4a3d..776fcf2b 100644 --- a/Ink Canvas/MainWindow_cs/MW_TouchEvents.cs +++ b/Ink Canvas/MainWindow_cs/MW_TouchEvents.cs @@ -91,6 +91,24 @@ namespace Ink_Canvas { ViewboxFloatingBar.IsHitTestVisible = false; BlackboardUIGridForInkReplay.IsHitTestVisible = false; + // 确保手写笔模式下显示光标 + if (Settings.Canvas.IsShowCursor) { + inkCanvas.ForceCursor = true; + inkCanvas.UseCustomCursor = true; + + // 根据当前编辑模式设置不同的光标 + if (inkCanvas.EditingMode == InkCanvasEditingMode.EraseByPoint) { + inkCanvas.Cursor = Cursors.Cross; + } 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(); + } + if (inkCanvas.EditingMode == InkCanvasEditingMode.EraseByPoint || inkCanvas.EditingMode == InkCanvasEditingMode.EraseByStroke || inkCanvas.EditingMode == InkCanvasEditingMode.Select) return; @@ -137,6 +155,13 @@ namespace Ink_Canvas { } catch { } + // 确保手写笔移动时光标保持可见 + if (Settings.Canvas.IsShowCursor) { + inkCanvas.ForceCursor = true; + inkCanvas.UseCustomCursor = true; + System.Windows.Forms.Cursor.Show(); + } + var strokeVisual = GetStrokeVisual(e.StylusDevice.Id); var stylusPointCollection = e.GetStylusPoints(this); foreach (var stylusPoint in stylusPointCollection) @@ -224,8 +249,17 @@ namespace Ink_Canvas { break; } - inkCanvas.EraserShape = new EllipseStylusShape(boundsWidth * k * eraserMultiplier, - boundsWidth * k * eraserMultiplier); + // 根据EraserShapeType设置合适的橡皮擦形状 + if (Settings.Canvas.EraserShapeType == 0) { + // 圆形擦 + inkCanvas.EraserShape = new EllipseStylusShape(boundsWidth * k * eraserMultiplier, + boundsWidth * k * eraserMultiplier); + } else if (Settings.Canvas.EraserShapeType == 1) { + // 矩形黑板擦 + inkCanvas.EraserShape = new RectangleStylusShape(boundsWidth * k * eraserMultiplier * 0.6, + boundsWidth * k * eraserMultiplier); + } + inkCanvas.EditingMode = InkCanvasEditingMode.EraseByPoint; } else { @@ -245,7 +279,8 @@ namespace Ink_Canvas { isLastTouchEraser = false; // 修复面积擦时不显示橡皮形状:无论 forcePointEraser 状态,均显示 50x50 橡皮 inkCanvas.EraserShape = new EllipseStylusShape(50, 50); - if (forceEraser) return; + // 修复触屏状态下几何绘制功能不可用的问题:在几何绘制模式下不应该因为forceEraser而直接返回 + if (forceEraser && drawingShapeMode == 0) return; inkCanvas.EditingMode = InkCanvasEditingMode.Ink; } } @@ -304,6 +339,16 @@ namespace Ink_Canvas { inkCanvas.EditingMode = lastInkCanvasEditingMode; dec.Remove(e.TouchDevice.Id); inkCanvas.Opacity = 1; + + // 如果是手掌触发的面积擦抬起,需要确保橡皮擦形状被正确重置 + if (isLastTouchEraser && dec.Count == 0) { + isLastTouchEraser = false; + if (inkCanvas.EditingMode == InkCanvasEditingMode.EraseByPoint && forcePointEraser) { + // 重新应用当前设置的橡皮擦形状 + ApplyCurrentEraserShape(); + } + } + if (dec.Count == 0) if (lastTouchDownStrokeCollection.Count() != inkCanvas.Strokes.Count() && !(drawingShapeMode == 9 && !isFirstTouchCuboid)) { diff --git a/Ink Canvas/obj/Debug/net472/InkCanvasForClass.g.resources b/Ink Canvas/obj/Debug/net472/InkCanvasForClass.g.resources index 7cbfdc184620aa18ddc15c2c466af72d070e3a2a..48b11725c5d178057abfac6ae5f9883bb1bcacc0 100644 GIT binary patch delta 2858 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 // 此代码由工具生成。 diff --git a/Ink Canvas/obj/Debug/net472/MainWindow.g.i.cs b/Ink Canvas/obj/Debug/net472/MainWindow.g.i.cs index fc42ef16..3208f30f 100644 --- a/Ink Canvas/obj/Debug/net472/MainWindow.g.i.cs +++ b/Ink Canvas/obj/Debug/net472/MainWindow.g.i.cs @@ -1,4 +1,4 @@ -#pragma checksum "..\..\..\MainWindow.xaml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "A9A3B2D7B1A7EB897CCDEEA8991553AFAD256672" +#pragma checksum "..\..\..\MainWindow.xaml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "C618DEE2BF2FDFC3FC9E2911171FB8CC42684DCF" //------------------------------------------------------------------------------ // // 此代码由工具生成。 From d4f1d21634d8012a334022c25fc2d8dac03c9c32 Mon Sep 17 00:00:00 2001 From: CJK_mkp <113243675+CJKmkp@users.noreply.github.com> Date: Thu, 19 Jun 2025 11:47:16 +0800 Subject: [PATCH 2/3] =?UTF-8?q?improve:=E9=9D=99=E9=BB=98=E6=9B=B4?= =?UTF-8?q?=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Ink Canvas/Helpers/AutoUpdateHelper.cs | 47 ++++++++--- Ink Canvas/MainWindow.xaml.cs | 29 ++++++- Ink Canvas/MainWindow_cs/MW_Timer.cs | 107 ++++++++++++++++++++++--- 3 files changed, 156 insertions(+), 27 deletions(-) diff --git a/Ink Canvas/Helpers/AutoUpdateHelper.cs b/Ink Canvas/Helpers/AutoUpdateHelper.cs index eed1b84e..3a4f50f5 100644 --- a/Ink Canvas/Helpers/AutoUpdateHelper.cs +++ b/Ink Canvas/Helpers/AutoUpdateHelper.cs @@ -411,6 +411,7 @@ namespace Ink_Canvas.Helpers LogHelper.WriteLogToFile($"AutoUpdate | Current application directory: {currentAppDir}"); LogHelper.WriteLogToFile($"AutoUpdate | Current process ID: {currentProcessId}"); + LogHelper.WriteLogToFile($"AutoUpdate | Silent update mode: {isInSilence}"); // 创建批处理文件来执行更新操作 string batchFilePath = Path.Combine(Path.GetTempPath(), "UpdateICC_" + Guid.NewGuid().ToString().Substring(0, 8) + ".bat"); @@ -468,21 +469,45 @@ namespace Ink_Canvas.Helpers // 启动更新后的应用程序 batchContent.AppendLine($"echo echo Update completed successfully! >> \"{updateBatPath}\""); - batchContent.AppendLine($"echo :: 检查应用程序是否已经在运行 >> \"{updateBatPath}\""); - batchContent.AppendLine($"echo tasklist /FI \"IMAGENAME eq Ink Canvas.exe\" | find /i \"Ink Canvas.exe\" > nul >> \"{updateBatPath}\""); - batchContent.AppendLine($"echo if %%ERRORLEVEL%% neq 0 ( >> \"{updateBatPath}\""); - batchContent.AppendLine($"echo echo 启动应用程序... >> \"{updateBatPath}\""); - batchContent.AppendLine($"echo start \"\" \"{appPath}\" >> \"{updateBatPath}\""); - batchContent.AppendLine($"echo ) else ( >> \"{updateBatPath}\""); - batchContent.AppendLine($"echo echo 应用程序已经在运行,不再重复启动 >> \"{updateBatPath}\""); - batchContent.AppendLine($"echo ) >> \"{updateBatPath}\""); + + // 根据是否为静默更新模式决定是否自动启动应用程序 + if (isInSilence) + { + // 静默更新模式下,自动启动应用程序 + batchContent.AppendLine($"echo echo 自动启动应用程序... >> \"{updateBatPath}\""); + batchContent.AppendLine($"echo start \"\" \"{appPath}\" >> \"{updateBatPath}\""); + } + else + { + // 非静默模式下,检查应用程序是否已经在运行 + batchContent.AppendLine($"echo :: 检查应用程序是否已经在运行 >> \"{updateBatPath}\""); + batchContent.AppendLine($"echo tasklist /FI \"IMAGENAME eq Ink Canvas.exe\" | find /i \"Ink Canvas.exe\" > nul >> \"{updateBatPath}\""); + batchContent.AppendLine($"echo if %%ERRORLEVEL%% neq 0 ( >> \"{updateBatPath}\""); + batchContent.AppendLine($"echo echo 启动应用程序... >> \"{updateBatPath}\""); + batchContent.AppendLine($"echo start \"\" \"{appPath}\" >> \"{updateBatPath}\""); + batchContent.AppendLine($"echo ) else ( >> \"{updateBatPath}\""); + batchContent.AppendLine($"echo echo 应用程序已经在运行,不再重复启动 >> \"{updateBatPath}\""); + batchContent.AppendLine($"echo ) >> \"{updateBatPath}\""); + } + batchContent.AppendLine($"echo exit /b 0 >> \"{updateBatPath}\""); batchContent.AppendLine($"echo goto EXIT >> \"{updateBatPath}\""); // 错误退出处理 - batchContent.AppendLine($"echo :ERROR_EXIT >> \"{updateBatPath}\""); - batchContent.AppendLine($"echo start \"\" cmd /c \"echo Update failed! ^& pause\" >> \"{updateBatPath}\""); - batchContent.AppendLine($"echo exit /b 1 >> \"{updateBatPath}\""); + if (isInSilence) + { + // 静默模式下,不显示错误提示 + batchContent.AppendLine($"echo :ERROR_EXIT >> \"{updateBatPath}\""); + batchContent.AppendLine($"echo echo Update failed! >> \"%temp%\\icc_update_error.log\" >> \"{updateBatPath}\""); + batchContent.AppendLine($"echo exit /b 1 >> \"{updateBatPath}\""); + } + else + { + // 非静默模式下,显示错误提示 + batchContent.AppendLine($"echo :ERROR_EXIT >> \"{updateBatPath}\""); + batchContent.AppendLine($"echo start \"\" cmd /c \"echo Update failed! ^& pause\" >> \"{updateBatPath}\""); + batchContent.AppendLine($"echo exit /b 1 >> \"{updateBatPath}\""); + } // 删除批处理文件自身 batchContent.AppendLine($"echo :EXIT >> \"{updateBatPath}\""); diff --git a/Ink Canvas/MainWindow.xaml.cs b/Ink Canvas/MainWindow.xaml.cs index 4502b628..15a5f238 100644 --- a/Ink Canvas/MainWindow.xaml.cs +++ b/Ink Canvas/MainWindow.xaml.cs @@ -363,9 +363,35 @@ namespace Ink_Canvas { HasNewUpdateWindow updateWindow = new HasNewUpdateWindow(currentVersion, AvailableLatestVersion, releaseDate, releaseNotes); bool? dialogResult = updateWindow.ShowDialog(); + // 声明下载结果变量 + bool isDownloadSuccessful; + // 如果窗口被关闭但没有点击按钮,视为"稍后更新" if (dialogResult != true) { LogHelper.WriteLogToFile("AutoUpdate | Update dialog closed without selection"); + + // 更新自动更新设置并保存 + Settings.Startup.IsAutoUpdate = updateWindow.IsAutoUpdateEnabled; + Settings.Startup.IsAutoUpdateWithSilence = updateWindow.IsSilentUpdateEnabled; + SaveSettingsToFile(); + + // 如果启用了静默更新,则自动下载更新 + if (Settings.Startup.IsAutoUpdateWithSilence) { + LogHelper.WriteLogToFile("AutoUpdate | Silent update enabled, downloading update automatically"); + + // 静默下载更新 + isDownloadSuccessful = await AutoUpdateHelper.DownloadSetupFileAndSaveStatus(AvailableLatestVersion); + + if (isDownloadSuccessful) { + LogHelper.WriteLogToFile("AutoUpdate | Update downloaded successfully, will install when application closes"); + + // 启动检查定时器 + timerCheckAutoUpdateWithSilence.Start(); + } else { + LogHelper.WriteLogToFile("AutoUpdate | Silent update download failed", LogHelper.LogType.Error); + } + } + return; } @@ -374,9 +400,6 @@ namespace Ink_Canvas { Settings.Startup.IsAutoUpdateWithSilence = updateWindow.IsSilentUpdateEnabled; SaveSettingsToFile(); - // 声明下载结果变量 - bool isDownloadSuccessful; - // 根据用户选择处理更新 switch (updateWindow.Result) { case HasNewUpdateWindow.UpdateResult.UpdateNow: diff --git a/Ink Canvas/MainWindow_cs/MW_Timer.cs b/Ink Canvas/MainWindow_cs/MW_Timer.cs index bf8197c0..5c84aa62 100644 --- a/Ink Canvas/MainWindow_cs/MW_Timer.cs +++ b/Ink Canvas/MainWindow_cs/MW_Timer.cs @@ -6,6 +6,9 @@ using System.Runtime.CompilerServices; using System.Timers; using System.Windows; using MessageBox = System.Windows.MessageBox; +using System.IO; +using System.Reflection; +using System.Threading.Tasks; namespace Ink_Canvas { public class TimeViewModel : INotifyPropertyChanged { @@ -302,24 +305,102 @@ namespace Ink_Canvas { } private void timerCheckAutoUpdateWithSilence_Elapsed(object sender, ElapsedEventArgs e) { - Dispatcher.Invoke(() => { - try { - if (!Topmost || inkCanvas.Strokes.Count > 0) return; - } - catch (Exception ex) { - LogHelper.WriteLogToFile(ex.ToString(), LogHelper.LogType.Error); - } - }); + // 停止计时器,避免重复触发 + timerCheckAutoUpdateWithSilence.Stop(); + try { - if (AutoUpdateWithSilenceTimeComboBox.CheckIsInSilencePeriod( - Settings.Startup.AutoUpdateWithSilenceStartTime, - Settings.Startup.AutoUpdateWithSilenceEndTime)) { + // 检查是否有可用的更新 + if (string.IsNullOrEmpty(AvailableLatestVersion)) { + LogHelper.WriteLogToFile("AutoUpdate | No available update version found"); + return; + } + + // 检查是否启用了静默更新 + if (!Settings.Startup.IsAutoUpdateWithSilence) { + LogHelper.WriteLogToFile("AutoUpdate | Silent update is disabled"); + return; + } + + // 检查更新文件是否已下载 + string updatesFolderPath = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "AutoUpdate"); + string statusFilePath = Path.Combine(updatesFolderPath, $"DownloadV{AvailableLatestVersion}Status.txt"); + + if (!File.Exists(statusFilePath) || File.ReadAllText(statusFilePath).Trim().ToLower() != "true") { + LogHelper.WriteLogToFile("AutoUpdate | Update file not downloaded yet"); + + // 尝试下载更新文件 + Task.Run(async () => { + bool isDownloadSuccessful = await AutoUpdateHelper.DownloadSetupFileAndSaveStatus(AvailableLatestVersion); + if (isDownloadSuccessful) { + LogHelper.WriteLogToFile("AutoUpdate | Update downloaded successfully, will check again for installation"); + // 重新启动计时器,下次检查时安装 + timerCheckAutoUpdateWithSilence.Start(); + } else { + LogHelper.WriteLogToFile("AutoUpdate | Failed to download update", LogHelper.LogType.Error); + } + }); + + return; + } + + // 检查是否在静默更新时间段内 + bool isInSilencePeriod = AutoUpdateWithSilenceTimeComboBox.CheckIsInSilencePeriod( + Settings.Startup.AutoUpdateWithSilenceStartTime, + Settings.Startup.AutoUpdateWithSilenceEndTime); + + if (!isInSilencePeriod) { + LogHelper.WriteLogToFile("AutoUpdate | Not in silence update time period"); + // 重新启动计时器,稍后再检查 + timerCheckAutoUpdateWithSilence.Start(); + return; + } + + // 检查应用程序状态,确保可以安全更新 + bool canSafelyUpdate = false; + + Dispatcher.Invoke(() => { + try { + // 检查是否处于桌面模式(Topmost为true)且没有墨迹内容 + if (Topmost && inkCanvas.Strokes.Count == 0) { + // 检查是否有未保存的内容或正在进行的操作 + if (!isHidingSubPanelsWhenInking) { + canSafelyUpdate = true; + LogHelper.WriteLogToFile("AutoUpdate | Application is in a safe state for update"); + } else { + LogHelper.WriteLogToFile("AutoUpdate | Application is currently performing operations"); + } + } else { + LogHelper.WriteLogToFile("AutoUpdate | Application has unsaved content or is not in desktop mode"); + } + } + catch (Exception ex) { + LogHelper.WriteLogToFile($"AutoUpdate | Error checking application state: {ex.Message}", LogHelper.LogType.Error); + } + }); + + if (canSafelyUpdate) { + LogHelper.WriteLogToFile("AutoUpdate | Installing update now"); + + // 设置为用户主动退出,避免被看门狗判定为崩溃 + App.IsAppExitByUser = true; + + // 执行更新安装 AutoUpdateHelper.InstallNewVersionApp(AvailableLatestVersion, true); - timerCheckAutoUpdateWithSilence.Stop(); + + // 关闭应用程序 + Dispatcher.Invoke(() => { + Application.Current.Shutdown(); + }); + } else { + LogHelper.WriteLogToFile("AutoUpdate | Cannot safely update now, will try again later"); + // 重新启动计时器,稍后再检查 + timerCheckAutoUpdateWithSilence.Start(); } } catch (Exception ex) { - LogHelper.WriteLogToFile(ex.ToString(), LogHelper.LogType.Error); + LogHelper.WriteLogToFile($"AutoUpdate | Error in silent update check: {ex.Message}", LogHelper.LogType.Error); + // 出错时重新启动计时器,稍后再检查 + timerCheckAutoUpdateWithSilence.Start(); } } } From 912c1b91e4441b43fe964762de762954ec75a50b Mon Sep 17 00:00:00 2001 From: CJK_mkp <113243675+CJKmkp@users.noreply.github.com> Date: Thu, 19 Jun 2025 11:56:36 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E7=89=88=E6=9C=AC?= =?UTF-8?q?=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AutomaticUpdateVersionControl.txt | 2 +- Ink Canvas/AssemblyInfo.cs | 4 ++-- Ink Canvas/Properties/AssemblyInfo.cs | 4 ++-- .../net472/InkCanvasForClass.g.resources | Bin 5180943 -> 5180943 bytes 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/AutomaticUpdateVersionControl.txt b/AutomaticUpdateVersionControl.txt index 49ebdd60..83d1a5eb 100644 --- a/AutomaticUpdateVersionControl.txt +++ b/AutomaticUpdateVersionControl.txt @@ -1 +1 @@ -1.6.5 \ No newline at end of file +1.6.6 \ No newline at end of file diff --git a/Ink Canvas/AssemblyInfo.cs b/Ink Canvas/AssemblyInfo.cs index a416469f..7955d3e7 100644 --- a/Ink Canvas/AssemblyInfo.cs +++ b/Ink Canvas/AssemblyInfo.cs @@ -49,5 +49,5 @@ using System.Windows; // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.6.5")] -[assembly: AssemblyFileVersion("1.6.5")] +[assembly: AssemblyVersion("1.6.6")] +[assembly: AssemblyFileVersion("1.6.6")] diff --git a/Ink Canvas/Properties/AssemblyInfo.cs b/Ink Canvas/Properties/AssemblyInfo.cs index 578b3144..02d917e1 100644 --- a/Ink Canvas/Properties/AssemblyInfo.cs +++ b/Ink Canvas/Properties/AssemblyInfo.cs @@ -49,5 +49,5 @@ using System.Windows; // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.6.5")] -[assembly: AssemblyFileVersion("1.6.5")] \ No newline at end of file +[assembly: AssemblyVersion("1.6.6")] +[assembly: AssemblyFileVersion("1.6.6")] \ No newline at end of file diff --git a/Ink Canvas/obj/Debug/net472/InkCanvasForClass.g.resources b/Ink Canvas/obj/Debug/net472/InkCanvasForClass.g.resources index 48b11725c5d178057abfac6ae5f9883bb1bcacc0..3bfc4cc986985933c57f33680607a95a12e5fd0b 100644 GIT binary patch delta 452 zcmYk&xlRIM6o%mpf($UOxTA>pD+(ebg8PCDvbg-#bR^t_orQ(T6i^VYoO>`KVHz3> z8+#L56R*MAHm=f0tcQ4EbVJh%o0ABbo z2tQN=5JU(XhA@l~jA9Jq2x9`1n8Gw>FpD`vFpmX9v4|L!5XUkER10|fJj0&o#;R2VqvW0ow`gAIMvSi-Y vnzESvuhhPMluf^rdzSo&x=u5F`J=k>-J7gO{$A5|@=G>iuKl-ilhS?x{TiQX delta 452 zcmYk&yG{a86ougoh=2^DqN0L;dc1+afQ~5M8N~aswlm=+>?|xyrjUYYCGS8&!Zb7% zHuNU8CO(6;e=-S7@g;j@@7=8Wd)HM*D_|&k}Dd)UVT4snEIoS+N?6`Z1qGo0fBm$<^UCCr`rqnI9 uCd-9ErPjl%taIWB;q%rqzD}IG=I=