From 4c4231b48cc813cab13bb2d908b12437d352f0e2 Mon Sep 17 00:00:00 2001 From: Zhe Fang Date: Sat, 13 Dec 2025 07:58:28 -0500 Subject: [PATCH] fix: white line in fullscreen mode --- .../BetterLyrics.WinUI3/Hooks/WindowHook.cs | 15 ++++++++---- .../Views/NowPlayingWindow.xaml.cs | 24 +++++++++++-------- 2 files changed, 25 insertions(+), 14 deletions(-) diff --git a/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Hooks/WindowHook.cs b/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Hooks/WindowHook.cs index 82c9b14..310b377 100644 --- a/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Hooks/WindowHook.cs +++ b/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Hooks/WindowHook.cs @@ -13,6 +13,7 @@ using System.Runtime.InteropServices; using Vanara.PInvoke; using Windows.ApplicationModel.Core; using Windows.Foundation; +using Windows.UI.WindowManagement; using WinRT.Interop; using WinUIEx; @@ -282,23 +283,27 @@ namespace BetterLyrics.WinUI3.Hooks } } - public static void SetIsFullscreen(this Window window, bool enable) + public static bool SetIsFullscreen(this Window window, bool enable, bool defaultExtendsContentIntoTitleBar = true) { - if (window.AppWindow == null) return; + if (window.AppWindow == null) return false; if (enable) { + window.ExtendsContentIntoTitleBar = false; window.AppWindow.SetPresenter(AppWindowPresenterKind.FullScreen); } else { + window.ExtendsContentIntoTitleBar = defaultExtendsContentIntoTitleBar; window.AppWindow.SetPresenter(AppWindowPresenterKind.Overlapped); } + + return true; } - public static void SetIsMaximized(this Window window, bool enable) + public static bool SetIsMaximized(this Window window, bool enable) { - if (window.AppWindow == null) return; + if (window.AppWindow == null) return false; if (enable) { @@ -308,6 +313,8 @@ namespace BetterLyrics.WinUI3.Hooks { window.Restore(); } + + return true; } public static void SetIsShowInSwitchers(this Window window, bool enable) diff --git a/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Views/NowPlayingWindow.xaml.cs b/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Views/NowPlayingWindow.xaml.cs index 811df20..e54235c 100644 --- a/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Views/NowPlayingWindow.xaml.cs +++ b/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Views/NowPlayingWindow.xaml.cs @@ -204,20 +204,24 @@ namespace BetterLyrics.WinUI3.Views private void OnIsFullscreenChanged() { - this.SetIsFullscreen(LyricsWindowStatus.IsFullscreen); - EnterFullscreenFontIcon.Opacity = LyricsWindowStatus.IsFullscreen ? 0 : 1; - ExitFullscreenFontIcon.Opacity = LyricsWindowStatus.IsFullscreen ? 1 : 0; - MaximizeButton.Visibility = LyricsWindowStatus.IsFullscreen ? Visibility.Collapsed : Visibility.Visible; - AOTButton.Visibility = LyricsWindowStatus.IsFullscreen ? Visibility.Collapsed : Visibility.Visible; - MinimizeButton.Visibility = LyricsWindowStatus.IsFullscreen ? Visibility.Collapsed : Visibility.Visible; - LockButton.Visibility = LyricsWindowStatus.IsFullscreen ? Visibility.Collapsed : Visibility.Visible; + if (this.SetIsFullscreen(LyricsWindowStatus.IsFullscreen)) + { + EnterFullscreenFontIcon.Opacity = LyricsWindowStatus.IsFullscreen ? 0 : 1; + ExitFullscreenFontIcon.Opacity = LyricsWindowStatus.IsFullscreen ? 1 : 0; + MaximizeButton.Visibility = LyricsWindowStatus.IsFullscreen ? Visibility.Collapsed : Visibility.Visible; + AOTButton.Visibility = LyricsWindowStatus.IsFullscreen ? Visibility.Collapsed : Visibility.Visible; + MinimizeButton.Visibility = LyricsWindowStatus.IsFullscreen ? Visibility.Collapsed : Visibility.Visible; + LockButton.Visibility = LyricsWindowStatus.IsFullscreen ? Visibility.Collapsed : Visibility.Visible; + } } private void OnIsMaximizedChanged() { - this.SetIsMaximized(LyricsWindowStatus.IsMaximized); - EnterMaximizeFontIcon.Opacity = LyricsWindowStatus.IsMaximized ? 0 : 1; - ExitMaximizeFontIcon.Opacity = LyricsWindowStatus.IsMaximized ? 1 : 0; + if (this.SetIsMaximized(LyricsWindowStatus.IsMaximized)) + { + EnterMaximizeFontIcon.Opacity = LyricsWindowStatus.IsMaximized ? 0 : 1; + ExitMaximizeFontIcon.Opacity = LyricsWindowStatus.IsMaximized ? 1 : 0; + } } private void OnAutoShowOrHideWindowChanged()