Класс ContentDialog используется для создания диалоговых окон. Диалоговое окно можно создать в виде кода или разметки.
Например, определим на странице текстовое поле и кнопку:
<Page x:Class="ControlsApp.MainPage" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="using:ControlsApp" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d"> <StackPanel Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"> <TextBlock x:Name="header" FontSize="26" /> <Button Content="Click" Click="Button_Click" /> </StackPanel> </Page>
В файле кода пропишем для кнопки обработчик Button_Click:
using System; using Windows.UI.Xaml; using Windows.UI.Xaml.Controls; namespace ControlsApp { public sealed partial class MainPage : Page { public MainPage() { this.InitializeComponent(); } private async void Button_Click(object sender, RoutedEventArgs e) { ContentDialog deleteFileDialog = new ContentDialog() { Title = "Подтверждение действия", Content = "Вы действительно хотите удалить файл?", PrimaryButtonText = "ОК", SecondaryButtonText = "Отмена" }; ContentDialogResult result = await deleteFileDialog.ShowAsync(); if (result == ContentDialogResult.Primary) { header.Text = "Файл удален"; } else if (result == ContentDialogResult.Secondary) { header.Text = "Отмена действия"; } } } }
Для диалогового окна можно задать ряд свойств. Прежде всего, свойство Title устанавливает заголовок окна, а свойство Content - его текст. Свойство PrimaryButtonText определяет текст на первой кнопке, а SecondaryButtonText - на второй.
Для отображения диалогового окна надо вызвать асинхонный метод ShowAsync(). Его результатом является объект
ContentDialogResult, из которого мы можем узнать какую кнопку нажал пользователь. Если результат равен ContentDialogResult.Primary
,
то нажата первая кнопка.
Запустим приложение и нажмем на кнопку:
При этом диалоговое окно будет модальным и будет занимать всю страницу. И пока мы не нажмем на определенную кнопку, работать с приложением мы не сможем.