Table of Contents

Дерево

Дерево Settings с Video, Audio и раскрытым узлом Controls, в котором Keyboard и Gamepad

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 геймпада переключают строку с дочерними элементами. Щелчок или касание шеврона раскрывает или сворачивает строку, а щелчок по самой строке выбирает её.

См. также