Вопрос

Привет, проблема, с которой я столкнулся, в том, что у меня есть несколько элементов управления 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.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top