From f4c10f6491908458aa7fbc05483cd15eacbe135a Mon Sep 17 00:00:00 2001 From: chinboy Date: Mon, 15 Sep 2025 13:36:19 +0800 Subject: [PATCH] Refactor Dialog add EscapeStandardButtonProperty --- src/AtomUI.Controls/Dialog/Dialog.cs | 19 ++- src/AtomUI.Controls/Dialog/DialogBoxButton.cs | 4 +- src/AtomUI.Controls/Dialog/DialogButtonBox.cs | 127 +++++++++++++----- src/AtomUI.Controls/Dialog/DialogHost.cs | 15 ++- .../Dialog/DialogStandardButton.cs | 24 ++-- .../Dialog/Localization/en_US.cs | 1 + .../Dialog/Localization/zh_CN.cs | 1 + .../Dialog/OverlayDialogHost.cs | 15 ++- .../Dialog/Themes/DialogButtonBoxTheme.axaml | 1 + .../Dialog/Themes/DialogHostTheme.axaml | 3 +- .../Themes/OverlayDialogHostTheme.axaml | 3 +- .../LanguageResourceConst.g.cs | 1 + src/AtomUI.Controls/MessageBox/MessageBox.cs | 5 + .../Themes/MessageBoxDialogHostTheme.axaml | 7 + .../MessageBoxOverlayDialogHostTheme.axaml | 7 + 15 files changed, 178 insertions(+), 55 deletions(-) diff --git a/src/AtomUI.Controls/Dialog/Dialog.cs b/src/AtomUI.Controls/Dialog/Dialog.cs index f9bb57707..3c9e1bb9a 100644 --- a/src/AtomUI.Controls/Dialog/Dialog.cs +++ b/src/AtomUI.Controls/Dialog/Dialog.cs @@ -111,6 +111,9 @@ public class Dialog : TemplatedControl, public static readonly StyledProperty DefaultStandardButtonProperty = DialogButtonBox.DefaultStandardButtonProperty.AddOwner(); + public static readonly StyledProperty EscapeStandardButtonProperty = + DialogButtonBox.EscapeStandardButtonProperty.AddOwner(); + public static readonly StyledProperty IsFooterVisibleProperty = AvaloniaProperty.Register(nameof(IsFooterVisible), true); @@ -294,6 +297,12 @@ public class Dialog : TemplatedControl, set => SetValue(DefaultStandardButtonProperty, value); } + public DialogStandardButton EscapeStandardButton + { + get => GetValue(EscapeStandardButtonProperty); + set => SetValue(EscapeStandardButtonProperty, value); + } + public bool IsFooterVisible { get => GetValue(IsFooterVisibleProperty); @@ -309,7 +318,7 @@ public class Dialog : TemplatedControl, public IDialogHost? Host => _openState?.DialogHost; IDialogHost? IDialogHostProvider.DialogHost => Host; - public AvaloniaList