From 1c50edd8bea66ff0ae05ccb846d76f73bd6a1aab Mon Sep 17 00:00:00 2001 From: CJKmkp <2564608840@qq.com> Date: Fri, 20 Feb 2026 14:59:41 +0800 Subject: [PATCH] =?UTF-8?q?improve:PPT=E5=A2=A8=E8=BF=B9=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Ink Canvas/MainWindow_cs/MW_PPT.cs | 26 ++++++++------------------ 1 file changed, 8 insertions(+), 18 deletions(-) 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 {