From 82c045a2439cbb5febbef31d20323e2ebb2d0d38 Mon Sep 17 00:00:00 2001 From: CJKmkp <2564608840@qq.com> Date: Sat, 6 Sep 2025 10:17:12 +0800 Subject: [PATCH] fix:issue #152 --- Ink Canvas/MainWindow.xaml.cs | 5 ++++- Ink Canvas/MainWindow_cs/MW_FloatingBarIcons.cs | 16 ++++++++++++++-- Ink Canvas/MainWindow_cs/MW_Hotkeys.cs | 12 ++++++++++-- 3 files changed, 28 insertions(+), 5 deletions(-) diff --git a/Ink Canvas/MainWindow.xaml.cs b/Ink Canvas/MainWindow.xaml.cs index e3cf6eae..2380693f 100644 --- a/Ink Canvas/MainWindow.xaml.cs +++ b/Ink Canvas/MainWindow.xaml.cs @@ -296,7 +296,10 @@ namespace Ink_Canvas { foreach (var gest in gestures) //Trace.WriteLine(string.Format("Gesture: {0}, Confidence: {1}", gest.ApplicationGesture, gest.RecognitionConfidence)); - if (StackPanelPPTControls.Visibility == Visibility.Visible) + // 只有在PPT放映模式下才响应翻页手势 + if (StackPanelPPTControls.Visibility == Visibility.Visible && + BtnPPTSlideShowEnd.Visibility == Visibility.Visible && + PPTManager?.IsInSlideShow == true) { if (gest.ApplicationGesture == ApplicationGesture.Left) { diff --git a/Ink Canvas/MainWindow_cs/MW_FloatingBarIcons.cs b/Ink Canvas/MainWindow_cs/MW_FloatingBarIcons.cs index 7ac341a1..3d6aeb34 100644 --- a/Ink Canvas/MainWindow_cs/MW_FloatingBarIcons.cs +++ b/Ink Canvas/MainWindow_cs/MW_FloatingBarIcons.cs @@ -650,7 +650,10 @@ namespace Ink_Canvas //关闭黑板 HideSubPanelsImmediately(); - if (StackPanelPPTControls.Visibility == Visibility.Visible) + // 只有在PPT放映模式下才显示翻页按钮 + if (StackPanelPPTControls.Visibility == Visibility.Visible && + BtnPPTSlideShowEnd.Visibility == Visibility.Visible && + PPTManager?.IsInSlideShow == true) { var dops = Settings.PowerPointSettings.PPTButtonsDisplayOption.ToString(); var dopsc = dops.ToCharArray(); @@ -659,8 +662,17 @@ namespace Ink_Canvas if (dopsc[2] == '2' && !isDisplayingOrHidingBlackboard) AnimationsHelper.ShowWithFadeIn(LeftSidePanelForPPTNavigation); if (dopsc[3] == '2' && !isDisplayingOrHidingBlackboard) AnimationsHelper.ShowWithFadeIn(RightSidePanelForPPTNavigation); } + else + { + // 如果不在放映模式,隐藏所有翻页按钮 + LeftBottomPanelForPPTNavigation.Visibility = Visibility.Collapsed; + RightBottomPanelForPPTNavigation.Visibility = Visibility.Collapsed; + LeftSidePanelForPPTNavigation.Visibility = Visibility.Collapsed; + RightSidePanelForPPTNavigation.Visibility = Visibility.Collapsed; + } // 修复PPT放映时点击白板按钮后翻页按钮不显示的问题 - if (BtnPPTSlideShowEnd.Visibility == Visibility.Visible) + // 只有在确实在放映模式下才强制显示翻页按钮 + if (BtnPPTSlideShowEnd.Visibility == Visibility.Visible && PPTManager?.IsInSlideShow == true) { // 强制显示PPT翻页按钮 LeftBottomPanelForPPTNavigation.Visibility = Visibility.Visible; diff --git a/Ink Canvas/MainWindow_cs/MW_Hotkeys.cs b/Ink Canvas/MainWindow_cs/MW_Hotkeys.cs index 61fbaaf7..5a880df1 100644 --- a/Ink Canvas/MainWindow_cs/MW_Hotkeys.cs +++ b/Ink Canvas/MainWindow_cs/MW_Hotkeys.cs @@ -7,7 +7,11 @@ namespace Ink_Canvas { private void Window_MouseWheel(object sender, MouseWheelEventArgs e) { - if (StackPanelPPTControls.Visibility != Visibility.Visible || currentMode != 0) return; + // 只有在PPT放映模式下才响应鼠标滚轮翻页 + if (StackPanelPPTControls.Visibility != Visibility.Visible || + currentMode != 0 || + BtnPPTSlideShowEnd.Visibility != Visibility.Visible || + PPTManager?.IsInSlideShow != true) return; // 直接发送翻页请求到PPT放映软件,不通过软件处理 if (e.Delta >= 120) @@ -24,7 +28,11 @@ namespace Ink_Canvas private void Main_Grid_PreviewKeyDown(object sender, KeyEventArgs e) { - if (StackPanelPPTControls.Visibility != Visibility.Visible || currentMode != 0) return; + // 只有在PPT放映模式下才响应键盘翻页快捷键 + if (StackPanelPPTControls.Visibility != Visibility.Visible || + currentMode != 0 || + BtnPPTSlideShowEnd.Visibility != Visibility.Visible || + PPTManager?.IsInSlideShow != true) return; // 直接发送翻页请求到PPT放映软件,不通过软件处理 if (e.Key == Key.Down || e.Key == Key.PageDown || e.Key == Key.Right || e.Key == Key.N ||