diff --git a/demo/Semi.Avalonia.Demo/App.axaml b/demo/Semi.Avalonia.Demo/App.axaml index 605631b..99f40c7 100644 --- a/demo/Semi.Avalonia.Demo/App.axaml +++ b/demo/Semi.Avalonia.Demo/App.axaml @@ -33,6 +33,7 @@ diff --git a/demo/Semi.Avalonia.Demo/ViewModels/ApplicationViewModel.cs b/demo/Semi.Avalonia.Demo/ViewModels/ApplicationViewModel.cs index 0655629..7a07dfc 100644 --- a/demo/Semi.Avalonia.Demo/ViewModels/ApplicationViewModel.cs +++ b/demo/Semi.Avalonia.Demo/ViewModels/ApplicationViewModel.cs @@ -1,4 +1,5 @@ using Avalonia; +using Avalonia.Controls; using Avalonia.Controls.ApplicationLifetimes; using CommunityToolkit.Mvvm.ComponentModel; using CommunityToolkit.Mvvm.Input; @@ -8,9 +9,26 @@ 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"); }