From c3885c170c80c5912311dac33e300ed4fc7ce589 Mon Sep 17 00:00:00 2001 From: CJKmkp <2564608840@qq.com> Date: Sat, 18 Oct 2025 17:24:47 +0800 Subject: [PATCH] =?UTF-8?q?improve:PPT=E5=A2=A8=E8=BF=B9=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Ink Canvas/Helpers/PPTInkManager.cs | 2 +- Ink Canvas/MainWindow_cs/MW_PPT.cs | 31 +++++++++-------------------- 2 files changed, 10 insertions(+), 23 deletions(-) diff --git a/Ink Canvas/Helpers/PPTInkManager.cs b/Ink Canvas/Helpers/PPTInkManager.cs index cad06029..b450aae8 100644 --- a/Ink Canvas/Helpers/PPTInkManager.cs +++ b/Ink Canvas/Helpers/PPTInkManager.cs @@ -162,7 +162,7 @@ namespace Ink_Canvas.Helpers } /// - /// 强制保存指定页面的墨迹(忽略锁定状态) + /// 强制保存指定页面的墨迹 /// public void ForceSaveSlideStrokes(int slideIndex, StrokeCollection strokes) { diff --git a/Ink Canvas/MainWindow_cs/MW_PPT.cs b/Ink Canvas/MainWindow_cs/MW_PPT.cs index 4fd7bce7..dc789083 100644 --- a/Ink Canvas/MainWindow_cs/MW_PPT.cs +++ b/Ink Canvas/MainWindow_cs/MW_PPT.cs @@ -77,7 +77,7 @@ namespace Ink_Canvas #region PPT State Management private bool wasFloatingBarFoldedWhenEnterSlideShow; - private bool isEnteredSlideShowEndEvent; //防止重复调用本函数导致墨迹保存失效 + private bool isEnteredSlideShowEndEvent; private bool isPresentationHaveBlackSpace; // 长按翻页相关字段 @@ -107,7 +107,7 @@ namespace Ink_Canvas private PPTUIManager _pptUIManager; /// - /// 获取PPT管理器实例(供UI管理器使用) + /// 获取PPT管理器实例 /// public PPTManager PPTManager => _pptManager; #endregion @@ -615,7 +615,7 @@ namespace Ink_Canvas } } - private async void OnPPTSlideShowBegin(SlideShowWindow wn) + private void OnPPTSlideShowBegin(SlideShowWindow wn) { try { @@ -629,16 +629,15 @@ namespace Ink_Canvas } else { - // 如果关闭了PPT自动收纳功能,但用户当前在收纳模式下,进入PPT时取消收纳以提供更好的使用体验 if (isFloatingBarFolded) { - await UnFoldFloatingBar(new object()); + UnFoldFloatingBar(new object()); } } isStopInkReplay = true; - await Application.Current.Dispatcher.InvokeAsync(() => + Application.Current.Dispatcher.Invoke(() => { // 获取当前活跃的演示文稿并切换到对应的墨迹管理器 var activePresentation = _pptManager?.GetCurrentActivePresentation(); @@ -753,14 +752,7 @@ namespace Ink_Canvas if (!isFloatingBarFolded) { - new Thread(() => - { - Thread.Sleep(100); - Application.Current.Dispatcher.Invoke(() => - { - ViewboxFloatingBarMarginAnimation(60); - }); - }).Start(); + ViewboxFloatingBarMarginAnimation(60); } } catch (Exception ex) @@ -800,7 +792,6 @@ namespace Ink_Canvas { try { - // 处理浮动栏状态:根据"退出PPT放映后自动恢复浮动栏状态"设置决定是否恢复 if (Settings.Automation.IsAutoFoldAfterPPTSlideShow) { if (wasFloatingBarFoldedWhenEnterSlideShow) @@ -823,7 +814,6 @@ namespace Ink_Canvas } else { - // 如果两个功能都关闭,确保浮动栏展开 if (isFloatingBarFolded) { await UnFoldFloatingBar(new object()); @@ -908,8 +898,6 @@ namespace Ink_Canvas await Task.Delay(100); await Application.Current.Dispatcher.InvokeAsync(() => { - // 强制重新计算浮动栏位置,确保在退出PPT模式后正确复位 - // 先调用桌面模式的复位方法,然后调用通用的位置计算方法 PureViewboxFloatingBarMarginAnimationInDesktopMode(); ViewboxFloatingBarMarginAnimation(100, true); }); @@ -1468,7 +1456,7 @@ namespace Ink_Canvas }); } - private async void PPTNavigationBtn_MouseDown(object sender, MouseButtonEventArgs e) + private void PPTNavigationBtn_MouseDown(object sender, MouseButtonEventArgs e) { lastBorderMouseDownObject = sender; if (!Settings.PowerPointSettings.EnablePPTButtonPageClickable) return; @@ -1490,7 +1478,7 @@ namespace Ink_Canvas } } - private async void PPTNavigationBtn_MouseLeave(object sender, MouseEventArgs e) + private void PPTNavigationBtn_MouseLeave(object sender, MouseEventArgs e) { lastBorderMouseDownObject = null; if (sender == PPTLSPageButton) @@ -1511,7 +1499,7 @@ namespace Ink_Canvas } } - private async void PPTNavigationBtn_MouseUp(object sender, MouseButtonEventArgs e) + private void PPTNavigationBtn_MouseUp(object sender, MouseButtonEventArgs e) { if (lastBorderMouseDownObject != sender) return; @@ -1560,7 +1548,6 @@ namespace Ink_Canvas // 控制居中 if (!isFloatingBarFolded) { - await Task.Delay(100); ViewboxFloatingBarMarginAnimation(60); } }