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;