доработаный

This commit is contained in:
2026-09-14 21:02:45 +02:00
parent ab5e6e7422
commit 263be52245
5 changed files with 726 additions and 181 deletions
+33 -1
View File
@@ -1,11 +1,43 @@
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();
}
}