MxMessageBox¶
Диалоговое окно MxMessageBox позволяет отображать сообщения и задавать пользователям простые вопросы.

MxMessageBox отрисован с использованием тем оформления Eremex. Он поддерживает как светлые, так и темные варианты тем.
Используйте статические перегрузки методов MxMessageBox.Show и MxMessageBox.ShowAsync для отображения диалогового окна.
Показать перегрузки метода¶
Перегрузки метода MxMessageBox.Show возвращают результат диалогового окна (кнопку, нажатую пользователем). Доступны две перегрузки метода MxMessageBox.Show:
public static MessageBoxResult MxMessageBox.Show(Window? owner, string text, string? title = null, MessageBoxButtons buttons = MessageBoxButtons.Ok, MessageBoxIcon icon = MessageBoxIcon.None, MessageBoxResult defaultButton = MessageBoxResult.None, Action<MxMessageBox>? configure = null)
- владелец — окно, которому будет принадлежать окно с сообщением. Если этот параметр равен
null,MxMessageBoxавтоматически идентифицирует владельца: владельцем является последнее активное окно или главное окно приложения. - текст — текст, который будет отображаться в диалоговом окне.
- заголовок — Название диалогового окна.
- кнопки — значение перечисления
Eremex.AvaloniaUI.Controls.MessageBoxButtons, которое определяет кнопки для отображения в диалоговом окне. Доступные значения включают:Ok,OkCancel,YesNoCancel,YesNo,AbortRetryIgnore,RetryCancel - значок — один из предопределенных значков, отображаемых перед текстом. Задайте свойству значение
MessageBoxIcon.None, чтобы скрыть значок. - DefaultButton — определяет кнопку по умолчанию. Кнопка по умолчанию - это та, которая изначально фокусируется при отображении диалогового окна. Когда пользователь нажимает ENTER, нажимается кнопка по умолчанию.
-
настроить — делегат для выполнения дополнительной настройки диалогового окна (например, значка диалогового окна в панели заголовка или выравнивания кнопок).
Пример¶
В следующем примере отображается окно сообщения с тремя кнопками - Да, Нет и Отмена.

Другая перегрузка метода MxMessageBox.Show содержит только один параметр.
-
настроить — делегат для настройки диалогового окна.
Пример¶

var res = MxMessageBox.Show(configure: msgBox => { msgBox.Text = "Error opening the database"; msgBox.Title = "Error"; msgBox.Buttons = MessageBoxButtons.Ok; msgBox.ButtonAlignment = Avalonia.Layout.HorizontalAlignment.Center; msgBox.Window.Icon = new WindowIcon(AssetLoader.Open(new Uri("avares://DemoCenter/Assets/EMXControls.ico"))); });
Перегрузки метода ShowAsync¶
Вы можете использовать перегрузки метода MxMessageBox.ShowAsync для асинхронного вызова окна сообщения, не блокируя поток пользовательского интерфейса. Методы ShowAsync возвращают объект Task<MessageBoxResult>, представляющий асинхронную операцию. Эта операция завершается, когда пользователь закрывает окно сообщения. Параметры перегрузки метода ShowAsync совпадают с параметрами перегрузки методов Show.
public static Task<MessageBoxResult> ShowAsync(Window? owner, string text, string? title = null, MessageBoxButtons buttons = MessageBoxButtons.Ok, MessageBoxIcon icon = MessageBoxIcon.None, MessageBoxResult defaultButton = MessageBoxResult.None, Action<MxMessageBox>? configure = null)
Пример¶
В следующем примере окно сообщения отображается асинхронно и ожидает, пока пользователь нажмет кнопку.
async Task<MessageBoxResult> ShowMessageBoxAsync()
{
Task<MessageBoxResult> resultTask = MxMessageBox.ShowAsync(
owner: null,
text: "Are you sure you want to cancel this task?",
title: "Confirmation",
buttons: MessageBoxButtons.YesNo,
icon: MessageBoxIcon.Question
);
MessageBoxResult result = await resultTask;
if (result == MessageBoxResult.Yes)
{
await CancelTaskAsync();
}
return result;
}
async Task CancelTaskAsync()
{
await Task.Delay(3000);
}
* Эта страница была создана автоматически с помощью сервиса машинного перевода Яндекс Переводчик.