From 212c1fbcddd63fef6f7ff519d041ba5df4383fe3 Mon Sep 17 00:00:00 2001 From: Zhe Fang Date: Fri, 24 Oct 2025 15:43:36 -0400 Subject: [PATCH] chores: add lyrics window switcher entry for top command area ands system tray, add animation when open and close switcher --- .../BetterLyrics.WinUI3/App.xaml.cs | 1 + .../Controls/LyricsWindowSwitchControl.xaml | 8 +++++++- .../Controls/LyricsWindowSwitchControl.xaml.cs | 15 ++++++++++++--- .../Controls/SystemTray.xaml | 7 +++++-- .../BetterLyrics.WinUI3/Helper/WindowHelper.cs | 7 +++---- .../Strings/en-US/Resources.resw | 15 +++++++++------ .../Strings/ja-JP/Resources.resw | 9 ++++++--- .../Strings/ko-KR/Resources.resw | 9 ++++++--- .../Strings/zh-CN/Resources.resw | 9 ++++++--- .../Strings/zh-TW/Resources.resw | 9 ++++++--- .../LyricsWindowSwitchWindowViewModel.cs | 14 ++++++++++++++ .../ViewModels/SystemTrayViewModel.cs | 6 ++++++ .../BetterLyrics.WinUI3/Views/LyricsPage.xaml | 2 +- .../Views/LyricsPage.xaml.cs | 8 ++++++++ .../BetterLyrics.WinUI3/Views/LyricsWindow.xaml | 12 +++++++++++- .../Views/LyricsWindow.xaml.cs | 9 +++++++-- .../Views/LyricsWindowSwitchWindow.xaml | 5 ++++- .../Views/LyricsWindowSwitchWindow.xaml.cs | 17 +++++++++++++++++ 18 files changed, 129 insertions(+), 33 deletions(-) create mode 100644 BetterLyrics.WinUI3/BetterLyrics.WinUI3/ViewModels/LyricsWindowSwitchWindowViewModel.cs diff --git a/BetterLyrics.WinUI3/BetterLyrics.WinUI3/App.xaml.cs b/BetterLyrics.WinUI3/BetterLyrics.WinUI3/App.xaml.cs index 4dbc09e..1b4d7fb 100644 --- a/BetterLyrics.WinUI3/BetterLyrics.WinUI3/App.xaml.cs +++ b/BetterLyrics.WinUI3/BetterLyrics.WinUI3/App.xaml.cs @@ -118,6 +118,7 @@ namespace BetterLyrics.WinUI3 .AddSingleton() .AddSingleton() .AddSingleton() + .AddSingleton() .AddSingleton() .AddSingleton() .AddSingleton() diff --git a/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Controls/LyricsWindowSwitchControl.xaml b/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Controls/LyricsWindowSwitchControl.xaml index 0a76850..94b8659 100644 --- a/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Controls/LyricsWindowSwitchControl.xaml +++ b/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Controls/LyricsWindowSwitchControl.xaml @@ -16,13 +16,19 @@ VerticalAlignment="Center" Background="{ThemeResource AcrylicInAppFillColorDefaultBrush}" CornerRadius="12"> + + + diff --git a/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Views/LyricsWindow.xaml.cs b/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Views/LyricsWindow.xaml.cs index e586771..01d705c 100644 --- a/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Views/LyricsWindow.xaml.cs +++ b/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Views/LyricsWindow.xaml.cs @@ -27,6 +27,8 @@ namespace BetterLyrics.WinUI3.Views private readonly ILiveStatesService _liveStatesService = Ioc.Default.GetRequiredService(); private readonly WindowMessageMonitor _wmm; + public LyricsWindowViewModel ViewModel { get; private set; } = Ioc.Default.GetRequiredService(); + public LyricsWindow() { this.InitializeComponent(); @@ -79,8 +81,6 @@ namespace BetterLyrics.WinUI3.Views } } - public LyricsWindowViewModel ViewModel { get; private set; } = Ioc.Default.GetRequiredService(); - private void AppWindow_Changed(AppWindow sender, AppWindowChangedEventArgs args) { if (args.DidPositionChange || args.DidSizeChange) @@ -127,5 +127,10 @@ namespace BetterLyrics.WinUI3.Views { ViewModel.ExitOrClose(); } + + private void LyricsWindowSwitchButton_Click(object sender, RoutedEventArgs e) + { + WindowHelper.OpenOrShowWindow(); + } } } diff --git a/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Views/LyricsWindowSwitchWindow.xaml b/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Views/LyricsWindowSwitchWindow.xaml index 632c73b..97fac7b 100644 --- a/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Views/LyricsWindowSwitchWindow.xaml +++ b/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Views/LyricsWindowSwitchWindow.xaml @@ -10,7 +10,10 @@ Title="LyricsWindowSwitchWindow" mc:Ignorable="d"> - + + + + public sealed partial class LyricsWindowSwitchWindow : Window { + public LyricsWindowSwitchWindowViewModel ViewModel { get; private set; } = Ioc.Default.GetRequiredService(); + public LyricsWindowSwitchWindow() { InitializeComponent(); @@ -37,6 +41,19 @@ namespace BetterLyrics.WinUI3.Views AppWindow.IsShownInSwitchers = false; this.SetIsAlwaysOnTop(true); SetTitleBar(PlaceholderGrid); + + AppWindow.Changed += AppWindow_Changed; + } + + private void AppWindow_Changed(Microsoft.UI.Windowing.AppWindow sender, Microsoft.UI.Windowing.AppWindowChangedEventArgs args) + { + if (args.DidVisibilityChange) + { + if (sender.IsVisible) + { + ViewModel.RootGridOpacity = 1; + } + } } } }