From f2e7e17bd1e60ec1ee4450ee90b61c9a08689667 Mon Sep 17 00:00:00 2001 From: unknown <2564608840@qq.com> Date: Sun, 20 Jul 2025 00:16:23 +0800 Subject: [PATCH] =?UTF-8?q?improve:=E8=81=94=E5=8A=A8=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Ink Canvas/MainWindow_cs/MW_PPT.cs | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/Ink Canvas/MainWindow_cs/MW_PPT.cs b/Ink Canvas/MainWindow_cs/MW_PPT.cs index 0086c86c..ce3bc924 100644 --- a/Ink Canvas/MainWindow_cs/MW_PPT.cs +++ b/Ink Canvas/MainWindow_cs/MW_PPT.cs @@ -26,10 +26,22 @@ namespace Ink_Canvas { public static Slide slide = null; public static int slidescount = 0; + // 新增:安全切换LoadingMask可见性的方法,避免重复赋值导致动画闪动 + private void SetLoadingMaskVisibility(Visibility visibility) + { + Application.Current.Dispatcher.Invoke(() => + { + if (LoadingMask.Visibility != visibility) + { + LoadingMask.Visibility = visibility; + } + }); + } + private void BtnCheckPPT_Click(object sender, RoutedEventArgs e) { try { // 显示加载动画 - Application.Current.Dispatcher.Invoke(() => { LoadingMask.Visibility = Visibility.Visible; }); + SetLoadingMaskVisibility(Visibility.Visible); pptApplication = (Microsoft.Office.Interop.PowerPoint.Application)Marshal.GetActiveObject("kwpp.Application"); //pptApplication.SlideShowWindows[1].View.Next(); @@ -71,7 +83,7 @@ namespace Ink_Canvas { } finally { // 隐藏加载动画 - Application.Current.Dispatcher.Invoke(() => { LoadingMask.Visibility = Visibility.Collapsed; }); + SetLoadingMaskVisibility(Visibility.Collapsed); } } @@ -92,7 +104,7 @@ namespace Ink_Canvas { if (IsShowingRestoreHiddenSlidesWindow || IsShowingAutoplaySlidesWindow) return; try { // 显示加载动画 - Application.Current.Dispatcher.Invoke(() => { LoadingMask.Visibility = Visibility.Visible; }); + SetLoadingMaskVisibility(Visibility.Visible); pptApplication = (Microsoft.Office.Interop.PowerPoint.Application)Marshal.GetActiveObject("PowerPoint.Application"); @@ -142,7 +154,7 @@ namespace Ink_Canvas { } finally { // 隐藏加载动画 - Application.Current.Dispatcher.Invoke(() => { LoadingMask.Visibility = Visibility.Collapsed; }); + SetLoadingMaskVisibility(Visibility.Collapsed); } }