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