增加最小化至托盘图标功能

This commit is contained in:
ww-rm
2025-09-30 01:53:14 +08:00
parent 8c3be98b54
commit bb2862ed4f
13 changed files with 90 additions and 30 deletions

View File

@@ -249,7 +249,7 @@ namespace SpineViewer.ViewModels.MainWindow
private void DeletePreview_Execute(IList? args)
{
if (args is null || args.Count <= 0) return;
if (!MessagePopupService.Quest(string.Format(AppResource.Str_DeleteItemsQuest, args.Count))) return;
if (!MessagePopupService.OKCancel(string.Format(AppResource.Str_DeleteItemsQuest, args.Count))) return;
if (args.Count <= 10)
{

View File

@@ -29,6 +29,13 @@ namespace SpineViewer.ViewModels.MainWindow
public string Title => $"SpineViewer - v{App.Version}";
public bool? CloseToTray
{
get => _closeToTray;
set => SetProperty(ref _closeToTray, value);
}
private bool? _closeToTray = null;
public string AutoRunWorkspaceConfigPath
{
get => _autoRunWorkspaceConfigPath;
@@ -57,6 +64,9 @@ namespace SpineViewer.ViewModels.MainWindow
public ObservableCollectionWithLock<SpineObjectModel> SpineObjects => _spineObjectModels;
private readonly ObservableCollectionWithLock<SpineObjectModel> _spineObjectModels = [];
/// <summary>
/// 首选项 ViewModel
/// </summary>
public PreferenceViewModel PreferenceViewModel => _preferenceViewModel;
private readonly PreferenceViewModel _preferenceViewModel;

View File

@@ -110,6 +110,7 @@ namespace SpineViewer.ViewModels.MainWindow
AppLanguage = AppLanguage,
RenderSelectedOnly = RenderSelectedOnly,
WallpaperView = WallpaperView,
CloseToTray = CloseToTray,
AutoRun = AutoRun,
AutoRunWorkspaceConfigPath = AutoRunWorkspaceConfigPath,
AssociateFileSuffix = AssociateFileSuffix,
@@ -138,6 +139,7 @@ namespace SpineViewer.ViewModels.MainWindow
AppLanguage = value.AppLanguage;
RenderSelectedOnly = value.RenderSelectedOnly;
WallpaperView = value.WallpaperView;
CloseToTray = value.CloseToTray;
AutoRun = value.AutoRun;
AutoRunWorkspaceConfigPath = value.AutoRunWorkspaceConfigPath;
AssociateFileSuffix = value.AssociateFileSuffix;
@@ -264,6 +266,12 @@ namespace SpineViewer.ViewModels.MainWindow
set => SetProperty(_vmMain.SFMLRendererViewModel.WallpaperView, value, v => _vmMain.SFMLRendererViewModel.WallpaperView = v);
}
public bool? CloseToTray
{
get => _vmMain.CloseToTray;
set => SetProperty(_vmMain.CloseToTray, value, v => _vmMain.CloseToTray = v);
}
public bool AutoRun
{
get => ((App)App.Current).AutoRun;

View File

@@ -127,7 +127,7 @@ namespace SpineViewer.ViewModels.MainWindow
if (args.Count > 1)
{
if (!MessagePopupService.Quest(string.Format(AppResource.Str_RemoveItemsQuest, args.Count)))
if (!MessagePopupService.OKCancel(string.Format(AppResource.Str_RemoveItemsQuest, args.Count)))
return;
}
@@ -159,7 +159,7 @@ namespace SpineViewer.ViewModels.MainWindow
{
if (!RemoveAllSpineObject_CanExecute(args)) return;
if (!MessagePopupService.Quest(string.Format(AppResource.Str_RemoveItemsQuest, args.Count)))
if (!MessagePopupService.OKCancel(string.Format(AppResource.Str_RemoveItemsQuest, args.Count)))
return;
lock (_spineObjectModels.Lock)
@@ -469,7 +469,7 @@ namespace SpineViewer.ViewModels.MainWindow
{
if (validPaths.Count > 100)
{
if (!MessagePopupService.Quest(string.Format(AppResource.Str_TooManyItemsToAddQuest, validPaths.Count)))
if (!MessagePopupService.OKCancel(string.Format(AppResource.Str_TooManyItemsToAddQuest, validPaths.Count)))
return;
}
ProgressService.RunAsync((pr, ct) => AddSpineObjectsTask(