Системы меню в WPF представлены классом Menu, который поддерживает коллекцию объектов MenuItem
MenuItem можно заставить обрабатывать разнообразные события, наиболее примечательным из которых является Click, возникающее при выборе подэлемента конечным пользователем. В рассматриваемом примере создаются два пункта меню верхнего уровня (File (Файл) и Tools (Сервис); позже будет построено меню Edit (Правка)), которые содержат в себе подэлементы Exit (Выход) и Spelling Hints (Подсказки по правописанию) соответственно.В дополнение к обработке события Click
MouseEnter и MouseExit, которые применяются для установки текста в строке состояния. Добавьте в контекст элемента DockPanel следующую разметку:
MouseLeave ="MouseLeaveArea" Click ="FileExit_Click"/>
MouseLeave ="MouseLeaveArea" Click ="ToolsSpellingHints_Click"
Cursor="Help" />
Ваш элемент управления ToolBar
Button, которые предназначены для обработки тех же самых событий теми же методами из файла кода. С помощью такого приема можно дублировать обработчики для обслуживания и пунктов меню, и кнопок панели инструментов. Хотя в данной панели применяются типичные нажимаемые кнопки, вы должны принимать во внимание, что тип ToolBar "является" ContentControl, а потому на его поверхность можно помещать любые типы (скажем, раскрывающиеся списки, изображения и графику). Еще один интересный аспект связан с тем, что кнопка Check (Проверить) поддерживает специальный курсор мыши через свойство Cursor.На заметку!
ЭлементToolbar может быть дополнительно помещен внутрь элемента ToolBarTray, который управляет компоновкой, стыковкой и перетаскиванием для набора объектов ToolBar.Построение строки состояния
Элемент управления строкой состояния (StatusBar
DockPanel и содержит единственный элемент управления TextBlock, который ранее в главе не использовался. Элемент TextBlock можно применять для хранения текста с форматированием вроде выделения полужирным и подчеркивания, добавления разрывов строк и т.д. Поместите приведенную ниже разметку сразу после предыдущего определения элемента управления ToolBar:
Завершение проектирования пользовательского интерфейса
Финальный аспект проектирования нашего пользовательского интерфейса связан с определением поддерживающего разделители элемента Grid
Expander, помещенный внутрь StackPanel, который будет отображать список предполагаемых вариантов правописания, а справа — элемент TextBox с поддержкой многострочного текста, линеек прокрутки и включенной проверкой орфографии. Элемент Grid может быть целиком размещен в левой части родительской панели DockPanel. Чтобы завершить определение пользовательского интерфейса окна, добавьте следующую разметку XAML, расположив ее непосредственно под разметкой, которая описывает StatusBar:
Spelling Hints
Margin="10,10,10,10">
SpellCheck.IsEnabled ="True"
AcceptsReturn ="True"
Name ="txtData" FontSize ="14"
BorderBrush ="Blue"
VerticalScrollBarVisibility="Auto"
HorizontalScrollBarVisibility="Auto">
Реализация обработчиков событий MouseEnter/MouseLeave
К настоящему моменту пользовательский интерфейс окна готов. Понадобится лишь предоставить реализации оставшихся обработчиков событий. Начните с обновления файла кода C# так, чтобы каждый из обработчиков событий MouseEnter
MouseLeave устанавливал в текстовой панели строки состояния подходящее сообщение, которое окажет помощь конечному пользователю:public partial class MainWindow : System.Windows.Window
{
...
protected void MouseEnterExitArea(object sender, RoutedEventArgs args)
{
statBarText.Text = "Exit the Application";
}
protected void MouseEnterToolsHintsArea(object sender, RoutedEventArgs args)
{
statBarText.Text = "Show Spelling Suggestions";
}