Применить стиль ко всем TreeViewItem
-
21-09-2019 - |
Вопрос
Привет, проблема, с которой я столкнулся, в том, что у меня есть несколько элементов управления TreeView, и у каждого обзора есть свои собственные стили TreeViewItem, настраивая его
TreeView ItemContainerStyle="{StaticResource Style1}"
будет установлен только корневой элемент, а не все дочерние элементы. Как применить стиль ко всем дочерним элементам в TreeView
Решение
Есть несколько способов сделать это:
Вы можете сделать свой стиль стилем по умолчанию для всех TreeViewItems:
<Style TargetType="{x:Type TreeViewItem}">
...
</Style>
Разница в том, что вы не устанавливаете атрибут x:Key, но устанавливаете атрибут TargetType.В этом случае вам не нужно устанавливать ItemContainerStyle в TreeView.
Вы также можете установить свой стиль в качестве стиля по умолчанию для всех TreeViewItems, но только внутри вашего TreeView:
<TreeView>
<TreeView.Resources>
<Style TargetType="{x:Type TreeViewItem}" BasedOn="{StaticResource Style1}"/>
</TreeView.Resources>
</TreeView>
В этом случае вам также не нужно устанавливать ItemContainerStyle в TreeView.
Вы также можете изменить свой стиль следующим образом
<Style x:Key="Style1" TargetType="{x:Type TreeViewItem}">
<Setter Property="ItemContainerStyle" Value="{StaticResource Style1}"/>
</Style>
В этом случае вам все равно придется установить ItemContainerStyle в TreeView.