Главная » WPF » Меню WPF

0

Меню состоит из набора элементов  MenuItem, погруженных  либо в элемент Menu, либо в ContextMenu. В приложениях для Windows обычное меню распо# лагается, как правило, в верхней части окна. Контекстное же меню отображается по запросу пользователя, обычно путем щелчка правой кнопкой мыши или нажа# тия комбинации клавиш Shift+F10 (на современных  клавиатурах имеется специ# альная клавиша  для вызова контекстного  меню).

В User32  обычное меню принудительно располагалось сверху, но в WPF это ограничение  снято. Теперь меню можно помещать где угодно. На рис. 3.21 пока# зано два способа отображения меню; добиться  этого позволяют  шаблоны. Одна# ко не забывайте  о том, сколько  времени  у пользователя уйдет на привыкание к новой модели взаимодействия. В большинстве  приложений лучше поместить ме# ню там, где пользователь ожидает его найти.

Для создания  меню мы включаем иерархию элементов  MenuItem внутрь объ# екта Menu, который сам обычно погружен в элемент DockPanel, чтобы было про# ще отобразить  меню в верхней части окна:

Стандартное меню

Альтернативное меню

Рис. 3.21. Различные представления меню

<Window x:Class=’EssentialWPF.MenusAndToolbars’ xmlns=’http://schemas.microsoft.com/winfx/2006/xaml/presentation’ xmlns:x=’http://schemas.microsoft.com/winfx/2006/xaml’ Title=’Menus and Toolbars’

<DockPanel LastChildFill=’False’>

<Menu DockPanel.Dock=’Top’>

<MenuItem Header=’_File’>

<MenuItem Header=’E_xit’ Click=’ExitClicked’ />

</MenuItem>

<MenuItem Header=’_Edit’>

<MenuItem Header=’_Cut’ />

<MenuItem Header=’C_opy’ />

<MenuItem Header=’_Paste’ />

</MenuItem>

</Menu>

</DockPanel>

</Window>

Взаимодействие с меню сводится  к щелчку  мышью по нужному  пункту,  в результате  чего выполняются ассоциированные с этим пунктом  действия.  Ре# акция на щелчок программируется в обработчике события Click элемента MenuItem:

<!— MenusAndToolbars.xaml —>

<MenuItem Header=»E_xit» Click=»ExitClicked» />

// MenusAndToolbars.xaml.cs

void ExitClicked(object sender, RoutedEventArgs e) { Close();

}

Эта программа выводит окно, показанное на рис. 3.22. Выглядит оно в точности, как мы и ожидаем: выпадающее меню, содержащее пункты, которые пользователь может вы# бирать машью. Выбор пункта File, а затем Exit приводит к завершению приложения.

Тот факт, что класс MenuItem является производным от HeaderedItemsControl, теперь обретает смысл. И надпись «Edit»  в заголовке меню, и все три дочерних пункта меню – объекты класса MenuItem. Класс ToolBar чуть более интересен.

Источник: К. Андерсон  Основы  Windows Presentation Foundation. Пер. с англ. А. Слинкина — М.: ДМК Пресс, 2008 — 432 с.: ил.

По теме:

  • Комментарии