--- title: "Menu Styles and Templates" description: Learn about styles and templates for the Windows Presentation Foundation the Menu control. Modify the ControlTemplate to give the control a unique appearance. ms.date: "03/30/2017" helpviewer_keywords: - "styles [WPF], Menu" - "ControlTemplate [WPF], Menu" - "Menu [WPF], styles and templates" - "states [WPF], Menu" - "templates [WPF], Menu" - "parts [WPF], Menu" ms.assetid: b89da183-9b87-42c6-ac53-731a42c7b09e --- # Menu Styles and Templates This topic describes the styles and templates for the control. You can modify the default to give the control a unique appearance. For more information, see [Create a template for a control](how-to-create-apply-template.md). ## Menu Parts The control does not have any named parts. When you create a for a , your template might contain an within a . (The displays each item in the ; the enables scrolling within the control). If the is not the direct child of the , you must give the the name, `ItemsPresenter`. ## Menu States The following table lists the visual states for the control. |VisualState Name|VisualStateGroup Name|Description| |-|-|-| |Valid|ValidationStates|The control uses the class and the attached property is `false`.| |InvalidFocused|ValidationStates|The attached property is `true` has the control has focus.| |InvalidUnfocused|ValidationStates|The attached property is `true` has the control does not have focus.| ## MenuItem Parts The following table lists the named parts for the control. |Part|Type|Description| |-|-|-| |PART_Popup||The area for the submenu.| When you create a for a , your template might contain an within a . (The displays each item in the ; the enables scrolling within the control). If the is not the direct child of the , you must give the the name, `ItemsPresenter`. ## MenuItem States The following table lists the visual states for the control. |VisualState Name|VisualStateGroup Name|Description| |-|-|-| |Valid|ValidationStates|The control uses the class and the attached property is `false`.| |InvalidFocused|ValidationStates|The attached property is `true` has the control has focus.| |InvalidUnfocused|ValidationStates|The attached property is `true` has the control does not have focus.| ## Menu and MenuItem ControlTemplate Example The following example shows how to define a for the control. [!code-xaml[ControlTemplateExamples#Menu](~/samples/snippets/csharp/VS_Snippets_Wpf/ControlTemplateExamples/CS/resources/menu.xaml#menu)] The following example shows how to define a for the control. [!code-xaml[ControlTemplateExamples#MenuItem](~/samples/snippets/csharp/VS_Snippets_Wpf/ControlTemplateExamples/CS/resources/menu.xaml#menuitem)] The following example defines the `MenuScrollViewer`, which is used in the previous example. [!code-xaml[ControlTemplateExamples#MenuScrollViewer](~/samples/snippets/csharp/VS_Snippets_Wpf/ControlTemplateExamples/CS/resources/menu.xaml#menuscrollviewer)] The examples use one or more of the following resources. [!code-xaml[ControlTemplateExamples#Resources](~/samples/snippets/csharp/VS_Snippets_Wpf/ControlTemplateExamples/CS/resources/shared.xaml#resources)] For the complete sample, see [Styling with ControlTemplates Sample](https://github.com/Microsoft/WPF-Samples/tree/master/Styles%20&%20Templates/IntroToStylingAndTemplating). ## See also - - - [Control Styles and Templates](control-styles-and-templates.md) - [Control Customization](control-customization.md) - [Styling and Templating](styles-templates-overview.md) - [Create a template for a control](how-to-create-apply-template.md)