--- title: "TreeView Styles and Templates" ms.date: "03/30/2017" helpviewer_keywords: - "ControlTemplate [WPF], TreeView" - "templates [WPF], TreeView" - "parts [WPF], TreeView" - "states [WPF], TreeView" - "styles [WPF], TreeView" - "TreeView [WPF], styles and templates" ms.assetid: a49adb77-0202-4caa-b94a-8bb110d7fa9a --- # TreeView 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). ## TreeView Parts The control does not have any named parts. When you create a for an , your template might contain a 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`. ## TreeView 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.| ## TreeViewItem Parts The following table lists the named parts for the control. |Part|Type|Description| |----------|----------|-----------------| |PART_Header||A visual element that contains that header content of the control.| ## TreeViewItem States The following table lists the visual states for control. |VisualState Name|VisualStateGroup Name|Description| |----------------------|---------------------------|-----------------| |Normal|CommonStates|The default state.| |MouseOver|CommonStates|The mouse pointer is positioned over the .| |Disabled|CommonStates|The is disabled.| |Focused|FocusStates|The has focus.| |Unfocused|FocusStates|The does not have focus.| |Expanded|ExpansionStates|The control is expanded.| |Collapsed|ExpansionStates|The control is collapsed.| |HasItems|HasItemsStates|The has items.| |NoItems|HasItemsStates|The does not have items.| |Selected|SelectionStates|The is selected.| |SelectedInactive|SelectionStates|The is selected but not active.| |Unselected|SelectionStates|The is not selected.| |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.| ## TreeView ControlTemplate Example The following example shows how to define a for the control and its associated types. [!code-xaml[ControlTemplateExamples#TreeView](~/samples/snippets/csharp/VS_Snippets_Wpf/ControlTemplateExamples/CS/resources/treeview.xaml#treeview)] The preceding example uses 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)