Для создания всплывающих окон мы можем использовать элемент Popup. Он имеет свойство StaysOpen, которое позволяет управлять его отображением. Так, по умолчанию оно равно True, а это значит, что при отображении окна, оно больше не исчезнет, пока мы не установим явно значение этого свойства в False. Например, добавим элемент Popup:
<StackPanel> <Button Content="Жми" Width="80" Click="button1_Click" /> <Popup x:Name="popup1" IsOpen="False" MaxWidth="180"> <TextBlock TextWrapping="Wrap" FontSize="24" Width="180" > Чтобы узнать больше, посетите сайт metanit.com </TextBlock> </Popup> </StackPanel>
Popup может хранить сложное содержимое, другие элементы управления, но в данном случае ограничимся текстовым блоком.
И с помощью обработчика нажатия кнопки управляем отображением окна:
private void button1_Click(object sender, RoutedEventArgs e) { if(!popup1.IsOpen) popup1.IsOpen = true; else popup1.IsOpen = false; }
Еще один способ создания окон заключается в применении класса MessageDialog. В данном случае нам не надо ничего определять в xaml, все делается в коде c#. Например, определим в коде следующий обработчик нажатия кнопки:
private async void button1_Click(object sender, RoutedEventArgs e) { MessageDialog msgbox = new MessageDialog("Текст окна","Заголовок окна"); await msgbox.ShowAsync(); }
Класс MessageDialog находится в пространстве имен Windows.UI.Popups, поэтому нам также надо подключить его в начале файла директивой using:
using Windows.UI.Popups;
Для отображения окна используется метод ShowAsync(), который является асинхронным. Поэтому нам в данном случае надо использовать операторы
async
и await
.