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;