feat: add CanClose hook to easily block window closing.

This commit is contained in:
rabbitism
2024-10-07 17:53:41 +08:00
parent d0e57ba6ed
commit 8ee920bde4
2 changed files with 27 additions and 0 deletions

View File

@@ -1,3 +1,4 @@
using System.ComponentModel;
using Avalonia;
using Avalonia.Controls;
@@ -100,5 +101,24 @@ public class UrsaWindow: Window
set => SetValue(TitleBarMarginProperty, value);
}
protected virtual async Task<bool> CanClose()
{
return await Task.FromResult(true);
}
private bool _canClose = false;
protected override async void OnClosing(WindowClosingEventArgs e)
{
VerifyAccess();
if (!_canClose)
{
e.Cancel = true;
_canClose = await CanClose();
if (_canClose)
{
Close();
}
}
base.OnClosing(e);
}
}