From 5934abd448fed5596b4b359376c07e4e44d07e08 Mon Sep 17 00:00:00 2001 From: CJKmkp <2564608840@qq.com> Date: Tue, 29 Jul 2025 01:31:21 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E8=BF=9B=E9=80=80=E7=99=BD=E6=9D=BF?= =?UTF-8?q?=E5=A2=A8=E8=BF=B9=E6=B6=88=E5=A4=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../MainWindow_cs/MW_FloatingBarIcons.cs | 50 ++++++------------- Ink Canvas/MainWindow_cs/MW_PPT.cs | 2 + 2 files changed, 18 insertions(+), 34 deletions(-) diff --git a/Ink Canvas/MainWindow_cs/MW_FloatingBarIcons.cs b/Ink Canvas/MainWindow_cs/MW_FloatingBarIcons.cs index 1ebf3391..f457c4aa 100644 --- a/Ink Canvas/MainWindow_cs/MW_FloatingBarIcons.cs +++ b/Ink Canvas/MainWindow_cs/MW_FloatingBarIcons.cs @@ -1333,14 +1333,10 @@ namespace Ink_Canvas { if (currentMode != 0) { SaveStrokes(); - // 检查是否在PPT放映模式,如果不在则不恢复可能包含PPT墨迹的备份 - if (BtnPPTSlideShowEnd.Visibility == Visibility.Visible) { - RestoreStrokes(true); - } else { - // 不在PPT模式时,清空备份以避免显示已结束PPT的墨迹 - TimeMachineHistories[0] = null; - timeMachine.ClearStrokeHistory(); - } + // 总是恢复备份墨迹,不管是否在PPT模式 + // PPT墨迹和白板墨迹应该分别管理,不应该互相影响 + RestoreStrokes(true); + LogHelper.WriteLogToFile($"退出白板模式,恢复备份墨迹。当前模式:{(BtnPPTSlideShowEnd.Visibility == Visibility.Visible ? "PPT放映" : "桌面")}", LogHelper.LogType.Trace); } if (BtnSwitchTheme.Content.ToString() == "浅色") @@ -1795,16 +1791,10 @@ namespace Ink_Canvas { SaveStrokes(true); ClearStrokes(true); - // 检查是否在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(); - } + // 总是恢复备份墨迹,不管是否在PPT模式 + // PPT墨迹和白板墨迹应该分别管理,不应该互相影响 + RestoreStrokes(); + LogHelper.WriteLogToFile($"退出白板模式,恢复备份墨迹。当前模式:{(BtnPPTSlideShowEnd.Visibility == Visibility.Visible ? "PPT放映" : "桌面")}", LogHelper.LogType.Trace); // 退出白板时清空图片 inkCanvas.Children.Clear(); @@ -1846,14 +1836,10 @@ namespace Ink_Canvas { SaveStrokes(); ClearStrokes(true); - // 检查是否在PPT放映模式,如果不在则不恢复可能包含PPT墨迹的备份 - if (BtnPPTSlideShowEnd.Visibility == Visibility.Visible) { - RestoreStrokes(true); - } else { - // 不在PPT模式时,清空备份以避免显示已结束PPT的墨迹 - TimeMachineHistories[0] = null; - timeMachine.ClearStrokeHistory(); - } + // 总是恢复备份墨迹,不管是否在PPT模式 + // PPT墨迹和白板墨迹应该分别管理,不应该互相影响 + RestoreStrokes(true); + LogHelper.WriteLogToFile($"切换到桌面模式,恢复备份墨迹。当前模式:{(BtnPPTSlideShowEnd.Visibility == Visibility.Visible ? "PPT放映" : "桌面")}", LogHelper.LogType.Trace); // 退出白板时清空图片 inkCanvas.Children.Clear(); @@ -1891,14 +1877,10 @@ namespace Ink_Canvas { SaveStrokes(true); ClearStrokes(true); - // 检查是否在PPT放映模式,如果不在则不恢复可能包含PPT墨迹的备份 - if (BtnPPTSlideShowEnd.Visibility == Visibility.Visible) { - RestoreStrokes(); - } else { - // 不在PPT模式时,清空备份以避免显示已结束PPT的墨迹 - TimeMachineHistories[0] = null; - timeMachine.ClearStrokeHistory(); - } + // 总是恢复备份墨迹,不管是否在PPT模式 + // PPT墨迹和白板墨迹应该分别管理,不应该互相影响 + RestoreStrokes(); + LogHelper.WriteLogToFile($"进入白板模式,恢复备份墨迹。当前模式:{(BtnPPTSlideShowEnd.Visibility == Visibility.Visible ? "PPT放映" : "桌面")}", LogHelper.LogType.Trace); 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 695c5166..85e658aa 100644 --- a/Ink Canvas/MainWindow_cs/MW_PPT.cs +++ b/Ink Canvas/MainWindow_cs/MW_PPT.cs @@ -391,6 +391,8 @@ namespace Ink_Canvas { } ClearStrokes(true); + // 清空备份历史记录,防止退出白板时恢复已结束PPT的墨迹 + // 注意:这里只清空索引0的备份,不影响白板页面的墨迹(索引1及以上) TimeMachineHistories[0] = null; if (GridTransparencyFakeBackground.Background != Brushes.Transparent)