Files
spotx/Views/MainWindow.axaml.cs
T
2026-09-14 21:02:45 +02:00

44 lines
919 B
C#

using System;
using Avalonia.Controls;
using Avalonia.Interactivity;
using SpotXInstaller.ViewModels;
namespace SpotXInstaller.Views;
public partial class MainWindow : Window
{
private bool _allowClose;
public MainWindow()
{
InitializeComponent();
Closing += MainWindow_Closing;
}
private async void MainWindow_Closing(
object? sender,
WindowClosingEventArgs e)
{
if (_allowClose)
return;
if (DataContext is not MainViewModel vm)
return;
if (!vm.IsInstalling)
return;
// Не закрываем окно мгновенно.
// Сначала отменяем установку и убиваем process tree.
e.Cancel = true;
await vm.CancelInstallationAsync();
_allowClose = true;
Close();
}
}