Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю
Вашей целью является конструирование компоновки, в которой главное окно имеет расположенную в верхней части систему меню, под ней — панель инструментов и в нижней части окна — строку состояния. Строка состояния будет содержать область для текстовых подсказок, которые отображаются при выборе пользователем пункта меню (или кнопки в панели инструментов). Система меню и панель инструментов предоставят триггеры пользовательского интерфейса для закрытия приложения и отображения вариантов правописания в виджете
Expander
На рис. 25.14 показана начальная компоновка; она также иллюстрирует возможности правописания в рамках инфраструктуры WPF.

Чтобы приступить к построению интересующего пользовательского интерфейса, модифицируйте начальное определение XAML типа
Window
DockPanel
Grid
<Window x:Class="MyWordPad.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:MyWordPad"
mc:Ignorable="d"
Title="My Spell Checker" Height="450" Width="800">
<! -- Эта панель устанавливает содержимое окна -->
<DockPanel>
</DockPanel>
</Window>
Построение системы меню
Системы меню в WPF представлены классом Menu, который поддерживает коллекцию объектов
MenuItem
MenuItem
Click
В дополнение к обработке события
Click
MouseEnter
MouseExit
DockPanel
<b><!-- Стыковать систему меню к верхней части —></b>
<Menu DockPanel.Dock ="Top"
HorizontalAlignment="Left" Background="White" BorderBrush ="Black">
<MenuItem Header="_File">
<Separator/>
<MenuItem Header ="_Exit" MouseEnter ="MouseEnterExitArea"
MouseLeave ="MouseLeaveArea" Click ="FileExit_Click"/>
</MenuItem>
<MenuItem Header="_Tools">
<MenuItem Header ="_Spelling Hints"
MouseEnter ="MouseEnterToolsHintsArea"
MouseLeave ="MouseLeaveArea" Click ="ToolsSpellingHints_Click"/>
</MenuItem>
</Menu>
Обратите внимание, что система меню стыкована с верхней частью
DockPanel
Separator
Exit
Header
MenuItem
_Exit
&
&
После построения системы меню необходимо реализовать различные обработчики событий. Прежде всего, есть обработчик пункта меню File► Exit (Файл►Выход),
FileExit_Click()
MouseEnter
MouseExit
ToolsSpellingHints_Click()
using
using System.IO;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Input;
using Microsoft.Win32;
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
protected void FileExit_Click(object sender, RoutedEventArgs args)