Apply style to all TreeViewItem

こ雲淡風輕ζ 提交于 2019-12-18 16:58:31

问题


Hi The problem am having is that I have multiple TreeView control and each TreeView has its own TreeViewItem styles, setting it

TreeView ItemContainerStyle="{StaticResource Style1}"

will only set the root element NOT all the child elements, How to apply a style to all the child elements in a TreeView


回答1:


There are several ways to accomplish this:

You could make your style the default for all TreeViewItems:

<Style TargetType="{x:Type TreeViewItem}">
...
</Style>

The difference is that you do not set the x:Key attribute, but you do set the TargetType attribute. You do not need to set the ItemContainerStyle on your TreeView in this case.


You could also set your style as the default style for all TreeViewItems, but only within your TreeView:
<TreeView>
    <TreeView.Resources>
        <Style TargetType="{x:Type TreeViewItem}" BasedOn="{StaticResource Style1}"/>
    </TreeView.Resources>
</TreeView>

In this case you also do not need to set the ItemContainerStyle on your TreeView.


You could also alter your style as follows

<Style x:Key="Style1" TargetType="{x:Type TreeViewItem}">
    <Setter Property="ItemContainerStyle" Value="{StaticResource Style1}"/>
</Style>

In this case you'd still have to set the ItemContainerStyle on your TreeView.



来源:https://stackoverflow.com/questions/1366598/apply-style-to-all-treeviewitem

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!