From 17b2d744ba04f0b3282044294be9e335c267d4da Mon Sep 17 00:00:00 2001 From: CJKmkp <2564608840@qq.com> Date: Mon, 21 Jul 2025 16:53:11 +0800 Subject: [PATCH] =?UTF-8?q?add:=E9=80=80=E5=87=BAPPT=E6=94=BE=E6=98=A0?= =?UTF-8?q?=E8=87=AA=E5=8A=A8=E6=81=A2=E5=A4=8D=E6=94=B6=E7=BA=B3=E6=A8=A1?= =?UTF-8?q?=E5=BC=8F=20#38?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Ink Canvas/MainWindow.xaml | 10 +++++++++- Ink Canvas/MainWindow_cs/MW_PPT.cs | 12 +++++++++++- Ink Canvas/MainWindow_cs/MW_Settings.cs | 6 ++++++ Ink Canvas/MainWindow_cs/MW_SettingsToLoad.cs | 2 ++ Ink Canvas/Resources/Settings.cs | 3 +++ 5 files changed, 31 insertions(+), 2 deletions(-) diff --git a/Ink Canvas/MainWindow.xaml b/Ink Canvas/MainWindow.xaml index 8de161eb..8a29597a 100644 --- a/Ink Canvas/MainWindow.xaml +++ b/Ink Canvas/MainWindow.xaml @@ -2446,8 +2446,16 @@ IsOn="False" FontFamily="Microsoft YaHei UI" FontWeight="Bold" Toggled="ToggleSwitchAutoEnterAnnotationModeWhenExitFoldMode_Toggled" /> - + + + + + diff --git a/Ink Canvas/MainWindow_cs/MW_PPT.cs b/Ink Canvas/MainWindow_cs/MW_PPT.cs index 5231d089..f4109995 100644 --- a/Ink Canvas/MainWindow_cs/MW_PPT.cs +++ b/Ink Canvas/MainWindow_cs/MW_PPT.cs @@ -78,6 +78,9 @@ namespace Ink_Canvas { public static Slide slide = null; public static int slidescount = 0; + // 在类中添加字段 + private bool wasFloatingBarFoldedWhenEnterSlideShow = false; + private void BtnCheckPPT_Click(object sender, RoutedEventArgs e) { try { pptApplication = @@ -579,6 +582,8 @@ namespace Ink_Canvas { private async void PptApplication_SlideShowBegin(SlideShowWindow Wn) { try { + // 记录进入放映时浮动栏收纳状态 + wasFloatingBarFoldedWhenEnterSlideShow = isFloatingBarFolded; if (Settings.Automation.IsAutoFoldInPPTSlideShow && !isFloatingBarFolded) await FoldFloatingBar(new object()); @@ -728,7 +733,12 @@ namespace Ink_Canvas { private async void PptApplication_SlideShowEnd(Presentation Pres) { try { - if (isFloatingBarFolded) await UnFoldFloatingBar(new object()); + // 新增逻辑:如果设置开启且进入PPT放映时浮动栏是收纳的,退出时也自动收纳;否则自动展开 + if (Settings.Automation.IsAutoFoldAfterPPTSlideShow && wasFloatingBarFoldedWhenEnterSlideShow) { + if (!isFloatingBarFolded) await FoldFloatingBar(new object()); + } else { + if (isFloatingBarFolded) await UnFoldFloatingBar(new object()); + } // 记录 WPP 进程 ID,用于后续检测未关闭的进程 if (pptApplication != null) diff --git a/Ink Canvas/MainWindow_cs/MW_Settings.cs b/Ink Canvas/MainWindow_cs/MW_Settings.cs index e47df18b..66c3cf70 100644 --- a/Ink Canvas/MainWindow_cs/MW_Settings.cs +++ b/Ink Canvas/MainWindow_cs/MW_Settings.cs @@ -2171,5 +2171,11 @@ namespace Ink_Canvas { Settings.Canvas.IsCompressPicturesUploaded = ToggleSwitchCompressPicturesUploaded.IsOn; SaveSettingsToFile(); } + + private void ToggleSwitchAutoFoldAfterPPTSlideShow_Toggled(object sender, RoutedEventArgs e) { + if (!isLoaded) return; + Settings.Automation.IsAutoFoldAfterPPTSlideShow = ToggleSwitchAutoFoldAfterPPTSlideShow.IsOn; + SaveSettingsToFile(); + } } } diff --git a/Ink Canvas/MainWindow_cs/MW_SettingsToLoad.cs b/Ink Canvas/MainWindow_cs/MW_SettingsToLoad.cs index c74999f3..41fd11e1 100644 --- a/Ink Canvas/MainWindow_cs/MW_SettingsToLoad.cs +++ b/Ink Canvas/MainWindow_cs/MW_SettingsToLoad.cs @@ -683,6 +683,8 @@ namespace Ink_Canvas { ToggleSwitchAutoFoldInPPTSlideShow.IsOn = Settings.Automation.IsAutoFoldInPPTSlideShow; + ToggleSwitchAutoFoldAfterPPTSlideShow.IsOn = Settings.Automation.IsAutoFoldAfterPPTSlideShow; + if (Settings.Automation.IsAutoKillEasiNote || Settings.Automation.IsAutoKillPptService || Settings.Automation.IsAutoKillHiteAnnotation || Settings.Automation.IsAutoKillInkCanvas || Settings.Automation.IsAutoKillICA || Settings.Automation.IsAutoKillIDT || diff --git a/Ink Canvas/Resources/Settings.cs b/Ink Canvas/Resources/Settings.cs index 720473f3..14f9009c 100644 --- a/Ink Canvas/Resources/Settings.cs +++ b/Ink Canvas/Resources/Settings.cs @@ -323,6 +323,9 @@ namespace Ink_Canvas [JsonProperty("isAutoFoldInPPTSlideShow")] public bool IsAutoFoldInPPTSlideShow { get; set; } = false; + [JsonProperty("isAutoFoldAfterPPTSlideShow")] + public bool IsAutoFoldAfterPPTSlideShow { get; set; } = false; + [JsonProperty("isAutoKillPptService")] public bool IsAutoKillPptService { get; set; } = false;