diff --git a/Ink Canvas/MainWindow.xaml.cs b/Ink Canvas/MainWindow.xaml.cs index 3f36ab65..7cf93f05 100644 --- a/Ink Canvas/MainWindow.xaml.cs +++ b/Ink Canvas/MainWindow.xaml.cs @@ -200,10 +200,8 @@ namespace Ink_Canvas inkCanvas.PreviewMouseDown += inkCanvas_PreviewMouseDown; inkCanvas.StylusDown += inkCanvas_StylusDown; inkCanvas.MouseRightButtonUp += InkCanvas_MouseRightButtonUp; - - // 注册橡皮擦操作结束事件(StylusUp 用于自动切换回批注;MouseUp 在 MW_ShapeDrawing.cs 的 inkCanvas_MouseUp 中会调用 HandleEraserOperationEnded) + // 注册橡皮擦操作结束事件(StylusUp 用于自动切换回批注;MouseUp 由 XAML 绑定触发,无需再单独注册) inkCanvas.StylusUp += inkCanvas_StylusUp; - inkCanvas.MouseUp += inkCanvas_MouseUp; // 初始化第一页Canvas var firstCanvas = new System.Windows.Controls.Canvas(); diff --git a/Ink Canvas/MainWindow_cs/MW_BoardControls.cs b/Ink Canvas/MainWindow_cs/MW_BoardControls.cs index 69ddb9f4..e6ae2e85 100644 --- a/Ink Canvas/MainWindow_cs/MW_BoardControls.cs +++ b/Ink Canvas/MainWindow_cs/MW_BoardControls.cs @@ -512,11 +512,19 @@ namespace Ink_Canvas if (pageIndex == CurrentWhiteboardIndex) { ClearStrokes(true); - if (CurrentWhiteboardIndex != WhiteboardTotalCount) - for (var i = CurrentWhiteboardIndex; i <= WhiteboardTotalCount; i++) + + var oldTotal = WhiteboardTotalCount; + if (CurrentWhiteboardIndex != oldTotal) + { + for (var i = CurrentWhiteboardIndex; i < oldTotal; i++) TimeMachineHistories[i] = TimeMachineHistories[i + 1]; + } else + { CurrentWhiteboardIndex--; + } + + TimeMachineHistories[oldTotal] = null; WhiteboardTotalCount--; RestoreStrokes(); }