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;