Files
Semi.Avalonia/demo/Semi.Avalonia.Demo/ViewModels/ApplicationViewModel.cs

43 lines
1.1 KiB
C#

using Avalonia;
using Avalonia.Controls;
using Avalonia.Controls.ApplicationLifetimes;
using CommunityToolkit.Mvvm.ComponentModel;
using CommunityToolkit.Mvvm.Input;
using CommunityToolkit.Mvvm.Messaging;
namespace Semi.Avalonia.Demo.ViewModels;
public partial class ApplicationViewModel : ObservableObject
{
[RelayCommand]
private void Activate()
{
if (Application.Current?.ApplicationLifetime is not IClassicDesktopStyleApplicationLifetime desktop) return;
var mainWindow = desktop.MainWindow;
if (mainWindow is not null && !mainWindow.IsActive)
{
if (mainWindow.WindowState is WindowState.Minimized)
{
mainWindow.WindowState = WindowState.Normal;
}
mainWindow.Activate();
}
}
[RelayCommand]
private void JumpTo(string header)
{
Activate();
WeakReferenceMessenger.Default.Send(header, "JumpTo");
}
[RelayCommand]
private void Exit()
{
if (Application.Current?.ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop)
{
desktop.Shutdown();
}
}
}