Дерево

TreeView показывает вложенные элементы, которые игрок раскрывает и сворачивает: дерево настроек, журнал заданий, иерархию сцены в редакторе уровней.
Разметка
<!-- A static tree written in markup with TreeViewNode; bind ItemsSource for a tree built from your data. -->
<TreeView Width="240">
<TreeViewNode Header="Settings" IsExpanded="True">
<TreeViewNode Header="Video" />
<TreeViewNode Header="Audio" />
<TreeViewNode Header="Controls" IsExpanded="True">
<TreeViewNode Header="Keyboard" />
<TreeViewNode Header="Gamepad" />
</TreeViewNode>
</TreeViewNode>
</TreeView>
Статичное дерево записывается в разметке элементами TreeViewNode: у каждого узла есть Header,
дочерние узлы и IsExpanded/IsSelectable. Чтобы построить дерево из своих данных, привяжите
ItemsSource к корневым элементам и задайте в ChildrenSelector
функцию, возвращающую дочерние элементы.
Основные свойства
| Свойство | Описание |
|---|---|
| Items | Корневые узлы, записанные в разметке. |
| ItemsSource / ChildrenSelector | Дерево из ваших данных. |
| SelectedItem | Выбранный элемент. |
| Indent | Отступ каждого уровня. |
События и команды
SelectionChanged, ItemExpanded и ItemCollapsed.
Стиль
Каждая строка — TreeViewItem, в шаблоне которого есть части PART_Indent и PART_Expander (шеврон). Его визуальные
состояния — Hovered, Selected, SelectedHovered, Highlighted, HighlightedHovered, SelectedHighlighted и
Disabled.
Клавиатура, геймпад и сенсорный ввод
Стрелки вверх и вниз (или крестовина) переходят между строками. Стрелка вправо раскрывает строку или, если она уже раскрыта, переходит внутрь; стрелка влево сворачивает её или переходит к родителю. Enter или кнопка A геймпада переключают строку с дочерними элементами. Щелчок или касание шеврона раскрывает или сворачивает строку, а щелчок по самой строке выбирает её.
См. также
- Списки и выбор — для плоских списков.