Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю
В качестве простого примера добавьте следующий оператор кода:
private void Button_Click(object sender, RoutedEventArgs e)
{
MessageBox.Show("You clicked the button!");
}
Обработка событий в редакторе XAML
Обрабатывать события можно и непосредственно в редакторе XAML. Например, поместите курсор мыши внутрь элемента
<Window>
MouseMove

Позвольте IDE-среде создать обработчик события
MouseMove
private void MainWindow_MouseMove (object sender, MouseEventArgs e)
{
this.Title = e.GetPosition(this).ToString();
}
На заметку! В главе 28 описаны паттерны MWM и "Команда" (Command), которые являются гораздо лучшими способами обработки событий щелчков в корпоративных приложениях.
Но если вас интересует только простое приложение, тогда обработка событий щелчков с помощью прямолинейного обработчика будет вполне приемлемой.
Окно Document Outline
Во время работы с любым основанным на XAML проектом вы определенно будете использовать значительный объем разметки для представления пользовательского интерфейса. Когда вы начнете сталкиваться с более сложной разметкой XAML, может оказаться удобной визуализация разметки для быстрого выбора элементов с целью редактирования в визуальном конструкторе Visual Studio.
В настоящее время ваша разметка довольно проста, т.к. было определено лишь несколько элементов управления внутри начального элемента
<Grid>

Этот инструмент также предоставляет способ временного сокрытия заданного элемента (или набора элементов) на поверхности визуального конструктора, а также блокировки элементов с целью предотвращения их дальнейшего редактирования. В главе 25 вы увидите, что окно Document Outline предлагает много других возможностей для группирования выбранных элементов внутри новых диспетчеров компоновки (помимо прочих средств).
Включение и отключение отладчика XAML
После запуска приложения на экране появляется окно
МаinWindow

При желании отключить его понадобится найти настройки, касающиеся отладки XAML, на вкладке Tools►Options►Debugging►Hot Reload (Сервис►Параметры►Отладкам►Горячая перезагрузка). Снятие отметки с верхнего флажка предотвращает перекрытие окон приложения окном отладчика (рис. 24.11).

Исследование файла Арр.xaml
Как проект узнает, какое окно отображать? Еще большая интрига в том, что в результате исследования файлов кода, относящихся к приложению, метод
Main()
Чтобы разгадать загадку, какое окно открывать, в файле
Арр.xaml
StartupUri
Startup
Exit
StartupUri
Арр.xaml
<Application x:Class="WpfTesterApp.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:WpfTesterApp"
<b>StartupUri="MainWindow.xaml"</b>>
<Application.Resources>
</Application.Resources>
</Application>
С применением визуального конструктора XAML и средства завершения кода Visual Studio добавьте обработчики для событий
Startup
Exit
<Application x:Class="WpfTesterApp.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:WpfTesterApp"
StartupUri="MainWindow.xaml" <b>Startup="App_OnStartup" Exit="App_OnExit"</b>>
<Application.Resources>
</Application.Resources>
</Application>
Содержимое файла
Арр.xaml.cs