feat: add styleClass as an option to Dialogs.

This commit is contained in:
rabbitism
2024-11-03 01:19:42 +08:00
parent 571e1fec5f
commit ee707cd977
8 changed files with 49 additions and 3 deletions

View File

@@ -11,7 +11,8 @@ public static class MessageBox
string message,
string? title = null,
MessageBoxIcon icon = MessageBoxIcon.None,
MessageBoxButton button = MessageBoxButton.OK)
MessageBoxButton button = MessageBoxButton.OK,
string? styleClass = null)
{
var messageWindow = new MessageBoxWindow(button)
{
@@ -19,6 +20,10 @@ public static class MessageBox
Title = title,
MessageIcon = icon
};
if (!string.IsNullOrWhiteSpace(styleClass))
{
messageWindow.Classes.Add(styleClass!);
}
var lifetime = Application.Current?.ApplicationLifetime;
if (lifetime is not IClassicDesktopStyleApplicationLifetime classLifetime) return MessageBoxResult.None;
var main = classLifetime.MainWindow;
@@ -37,7 +42,8 @@ public static class MessageBox
string message,
string title,
MessageBoxIcon icon = MessageBoxIcon.None,
MessageBoxButton button = MessageBoxButton.OK)
MessageBoxButton button = MessageBoxButton.OK,
string? styleClass = null)
{
var messageWindow = new MessageBoxWindow(button)
{
@@ -45,6 +51,10 @@ public static class MessageBox
Title = title,
MessageIcon = icon
};
if (!string.IsNullOrWhiteSpace(styleClass))
{
messageWindow.Classes.Add(styleClass!);
}
var result = await messageWindow.ShowDialog<MessageBoxResult>(owner);
return result;
}
@@ -55,7 +65,8 @@ public static class MessageBox
string? hostId = null,
MessageBoxIcon icon = MessageBoxIcon.None,
MessageBoxButton button = MessageBoxButton.OK,
int? toplevelHashCode = null)
int? toplevelHashCode = null,
string? styleClass = null)
{
var host = OverlayDialogManager.GetHost(hostId, toplevelHashCode);
if (host is null) return MessageBoxResult.None;
@@ -67,6 +78,10 @@ public static class MessageBox
MessageIcon = icon,
[KeyboardNavigation.TabNavigationProperty] = KeyboardNavigationMode.Cycle
};
if (!string.IsNullOrWhiteSpace(styleClass))
{
messageControl.Classes.Add(styleClass!);
}
host.AddModalDialog(messageControl);
var result = await messageControl.ShowAsync<MessageBoxResult>();
return result;