diff --git a/Ink Canvas/MainWindow_cs/MW_PPT.cs b/Ink Canvas/MainWindow_cs/MW_PPT.cs index 31ee0f34..66085c78 100644 --- a/Ink Canvas/MainWindow_cs/MW_PPT.cs +++ b/Ink Canvas/MainWindow_cs/MW_PPT.cs @@ -1448,16 +1448,9 @@ namespace Ink_Canvas { try { - // 保存当前页墨迹 var currentSlide = _pptManager?.GetCurrentSlideNumber() ?? 0; - if (currentSlide > 0) - { - _singlePPTInkManager?.SaveCurrentSlideStrokes(currentSlide, inkCanvas.Strokes); - } - - // 保存截图(如果启用) if (inkCanvas.Strokes.Count > Settings.Automation.MinimumAutomationStrokeNumber && - Settings.PowerPointSettings.IsAutoSaveScreenShotInPowerPoint) + Settings.PowerPointSettings.IsAutoSaveScreenShotInPowerPoint && currentSlide > 0) { var presentationName = _pptManager?.GetPresentationName() ?? ""; SaveScreenShot(true, $"{presentationName}/{currentSlide}"); @@ -1466,7 +1459,6 @@ namespace Ink_Canvas // 执行翻页 if (_pptManager?.TryNavigatePrevious() == true) { - // 翻页成功,等待事件处理墨迹切换 } else { @@ -1488,16 +1480,14 @@ namespace Ink_Canvas { try { - // 保存当前页墨迹 - var currentSlide = _pptManager?.GetCurrentSlideNumber() ?? 0; - if (currentSlide > 0) - { - _singlePPTInkManager?.SaveCurrentSlideStrokes(currentSlide, inkCanvas.Strokes); - } + // 注意:不在这里保存墨迹,而是等待OnPPTSlideShowNextSlide事件触发时统一保存 + // 这样可以避免快速翻页时墨迹保存和加载的页码不匹配问题 + // 滚轮翻页之所以不会错页,是因为它直接触发事件,不会有双重保存的问题 - // 保存截图(如果启用) + // 保存截图(如果启用)- 截图保存不影响墨迹,可以保留 + var currentSlide = _pptManager?.GetCurrentSlideNumber() ?? 0; if (inkCanvas.Strokes.Count > Settings.Automation.MinimumAutomationStrokeNumber && - Settings.PowerPointSettings.IsAutoSaveScreenShotInPowerPoint) + Settings.PowerPointSettings.IsAutoSaveScreenShotInPowerPoint && currentSlide > 0) { var presentationName = _pptManager?.GetPresentationName() ?? ""; SaveScreenShot(true, $"{presentationName}/{currentSlide}"); @@ -1506,7 +1496,7 @@ namespace Ink_Canvas // 执行翻页 if (_pptManager?.TryNavigateNext() == true) { - // 翻页成功,等待事件处理墨迹切换 + // 翻页成功,等待OnPPTSlideShowNextSlide事件处理墨迹切换 } else {