mirror of
https://github.com/jayfunc/BetterLyrics.git
synced 2026-01-13 03:34:55 +08:00
在 `Package.appxmanifest` 中将版本号更新为 `1.0.32.0`。 在 `App.xaml.cs` 中优化 `OnLaunched` 方法,增加对 `lyricsWindow` 的空值检查。 在 `SystemTray.xaml` 中添加双击和左击命令以打开歌词窗口。 在 `SystemTrayViewModel.cs` 中新增 `OpenLyricsWindow` 方法,支持通过命令机制打开歌词窗口。
76 lines
2.3 KiB
C#
76 lines
2.3 KiB
C#
using BetterLyrics.WinUI3.Helper;
|
|
using BetterLyrics.WinUI3.Services;
|
|
using BetterLyrics.WinUI3.Views;
|
|
using CommunityToolkit.Mvvm.ComponentModel;
|
|
using CommunityToolkit.Mvvm.Input;
|
|
using CommunityToolkit.Mvvm.Messaging;
|
|
using CommunityToolkit.Mvvm.Messaging.Messages;
|
|
using Microsoft.UI.Xaml;
|
|
using System;
|
|
|
|
namespace BetterLyrics.WinUI3.ViewModels
|
|
{
|
|
public partial class SystemTrayViewModel(ISettingsService settingsService) : BaseViewModel(settingsService), IRecipient<PropertyChangedMessage<bool>>
|
|
{
|
|
[ObservableProperty]
|
|
[NotifyPropertyChangedRecipients]
|
|
public partial bool IsLyricsWindowLocked { get; set; } = false;
|
|
|
|
[ObservableProperty]
|
|
public partial string ToolTipText { get; set; } = MetadataHelper.AppName;
|
|
|
|
public void Receive(PropertyChangedMessage<bool> message)
|
|
{
|
|
if (message.Sender is LyricsWindowViewModel)
|
|
{
|
|
if (message.PropertyName == nameof(LyricsWindowViewModel.IsLyricsWindowLocked))
|
|
{
|
|
if (IsLyricsWindowLocked != message.NewValue)
|
|
{
|
|
IsLyricsWindowLocked = message.NewValue;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
[RelayCommand]
|
|
private static void ExitApp()
|
|
{
|
|
LyricsWindow? lyricsWindow = WindowHelper.GetWindowByWindowType<LyricsWindow>();
|
|
if (lyricsWindow != null)
|
|
{
|
|
DockModeHelper.Disable(lyricsWindow);
|
|
}
|
|
Environment.Exit(0);
|
|
}
|
|
|
|
[RelayCommand]
|
|
private static void OpenSettings()
|
|
{
|
|
WindowHelper.OpenWindow<SettingsWindow>();
|
|
}
|
|
|
|
[RelayCommand]
|
|
private static void OpenMusicGallery()
|
|
{
|
|
WindowHelper.OpenWindow<MusicGalleryWindow>();
|
|
}
|
|
|
|
[RelayCommand]
|
|
private static void OpenLyricsWindow()
|
|
{
|
|
WindowHelper.OpenWindow<LyricsWindow>();
|
|
}
|
|
|
|
[RelayCommand]
|
|
private void UnlockWindow()
|
|
{
|
|
var window = WindowHelper.GetWindowByWindowType<LyricsWindow>();
|
|
if (window == null) return;
|
|
|
|
DesktopModeHelper.SetClickThrough(window, false);
|
|
IsLyricsWindowLocked = false;
|
|
}
|
|
}
|
|
}
|