From b4481ff6804e3f7d39d41c0e077fde972eddceb2 Mon Sep 17 00:00:00 2001 From: CJKmkp <2564608840@qq.com> Date: Mon, 28 Jul 2025 18:23:07 +0800 Subject: [PATCH] fix:issue #111 --- .../MainWindow_cs/MW_FloatingBarIcons.cs | 41 +++++++++++++++++-- Ink Canvas/MainWindow_cs/MW_PPT.cs | 3 ++ 2 files changed, 40 insertions(+), 4 deletions(-) diff --git a/Ink Canvas/MainWindow_cs/MW_FloatingBarIcons.cs b/Ink Canvas/MainWindow_cs/MW_FloatingBarIcons.cs index 5cefce4c..32206b45 100644 --- a/Ink Canvas/MainWindow_cs/MW_FloatingBarIcons.cs +++ b/Ink Canvas/MainWindow_cs/MW_FloatingBarIcons.cs @@ -1325,7 +1325,14 @@ namespace Ink_Canvas { if (currentMode != 0) { SaveStrokes(); - RestoreStrokes(true); + // 检查是否在PPT放映模式,如果不在则不恢复可能包含PPT墨迹的备份 + if (BtnPPTSlideShowEnd.Visibility == Visibility.Visible) { + RestoreStrokes(true); + } else { + // 不在PPT模式时,清空备份以避免显示已结束PPT的墨迹 + TimeMachineHistories[0] = null; + timeMachine.ClearStrokeHistory(); + } } if (BtnSwitchTheme.Content.ToString() == "浅色") @@ -1779,7 +1786,17 @@ namespace Ink_Canvas { SaveStrokes(true); ClearStrokes(true); - RestoreStrokes(); + + // 检查是否在PPT放映模式,如果不在则不恢复可能包含PPT墨迹的备份 + if (BtnPPTSlideShowEnd.Visibility == Visibility.Visible) { + LogHelper.WriteLogToFile("退出白板:当前在PPT放映模式,恢复备份墨迹", LogHelper.LogType.Trace); + RestoreStrokes(); + } else { + // 不在PPT模式时,清空备份以避免显示已结束PPT的墨迹 + LogHelper.WriteLogToFile("退出白板:当前不在PPT放映模式,清空备份以避免显示已结束PPT的墨迹", LogHelper.LogType.Trace); + TimeMachineHistories[0] = null; + timeMachine.ClearStrokeHistory(); + } // 退出白板时清空图片 inkCanvas.Children.Clear(); @@ -1820,7 +1837,15 @@ namespace Ink_Canvas { SaveStrokes(); ClearStrokes(true); - RestoreStrokes(true); + + // 检查是否在PPT放映模式,如果不在则不恢复可能包含PPT墨迹的备份 + if (BtnPPTSlideShowEnd.Visibility == Visibility.Visible) { + RestoreStrokes(true); + } else { + // 不在PPT模式时,清空备份以避免显示已结束PPT的墨迹 + TimeMachineHistories[0] = null; + timeMachine.ClearStrokeHistory(); + } // 退出白板时清空图片 inkCanvas.Children.Clear(); @@ -1857,7 +1882,15 @@ namespace Ink_Canvas { SaveStrokes(true); ClearStrokes(true); - RestoreStrokes(); + + // 检查是否在PPT放映模式,如果不在则不恢复可能包含PPT墨迹的备份 + if (BtnPPTSlideShowEnd.Visibility == Visibility.Visible) { + RestoreStrokes(); + } else { + // 不在PPT模式时,清空备份以避免显示已结束PPT的墨迹 + TimeMachineHistories[0] = null; + timeMachine.ClearStrokeHistory(); + } BtnSwitch.Content = "屏幕"; if (BtnSwitchTheme.Content.ToString() == "浅色") { diff --git a/Ink Canvas/MainWindow_cs/MW_PPT.cs b/Ink Canvas/MainWindow_cs/MW_PPT.cs index ced212ef..d3376635 100644 --- a/Ink Canvas/MainWindow_cs/MW_PPT.cs +++ b/Ink Canvas/MainWindow_cs/MW_PPT.cs @@ -918,6 +918,9 @@ namespace Ink_Canvas { ClearStrokes(true); + // 清空备份历史记录,防止退出白板时恢复已结束PPT的墨迹 + TimeMachineHistories[0] = null; + if (GridTransparencyFakeBackground.Background != Brushes.Transparent) BtnHideInkCanvas_Click(BtnHideInkCanvas, null);