add:退出PPT放映自动恢复收纳模式 #38

This commit is contained in:
2025-07-21 16:53:11 +08:00
parent 166e0d400a
commit 17b2d744ba
5 changed files with 31 additions and 2 deletions
+9 -1
View File
@@ -2446,8 +2446,16 @@
IsOn="False" FontFamily="Microsoft YaHei UI" FontWeight="Bold"
Toggled="ToggleSwitchAutoEnterAnnotationModeWhenExitFoldMode_Toggled" />
</ui:SimpleStackPanel>
<TextBlock Text="# 开启后,退出收纳模式时将自动切换至批注模式,便于快速批注" TextWrapping="Wrap" Foreground="#a1a1aa" />
<ui:SimpleStackPanel Orientation="Horizontal" HorizontalAlignment="Left">
<TextBlock Foreground="#fafafa" Text="退出PPT放映后自动恢复浮动栏状态"
VerticalAlignment="Center" FontSize="14" Margin="0,0,16,0" />
<ui:ToggleSwitch OnContent="" OffContent=""
Name="ToggleSwitchAutoFoldAfterPPTSlideShow"
IsOn="False" FontFamily="Microsoft YaHei UI" FontWeight="Bold"
Toggled="ToggleSwitchAutoFoldAfterPPTSlideShow_Toggled" />
</ui:SimpleStackPanel>
<TextBlock Text="# 开启后,如果进入PPT放映前为收纳模式则退出后也为收纳模式,如果进入前不是收纳模式则退出后也不是收纳模式" TextWrapping="Wrap" Foreground="#a1a1aa" />
</ui:SimpleStackPanel>
</GroupBox>
<GroupBox Name="GroupBoxRandWindow">
+11 -1
View File
@@ -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)
+6
View File
@@ -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();
}
}
}
@@ -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 ||
+3
View File
@@ -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;