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);
}
* Эта страница была создана автоматически с помощью сервиса машинного перевода Яндекс Переводчик.