对于WPF TreeView,如何在设置TreeView.ItemContainerStyle的同时使用主题

时间:2011-06-03 21:19:15

标签: wpf treeview treeviewitem

我在XAML中使用它来根据Josh Smith的示例代码here从视图模型加载treeview子代:

<TreeView.ItemContainerStyle>
        <Style TargetType="{x:Type TreeViewItem}">
            <Setter Property="IsExpanded" Value="{Binding IsExpanded, Mode=TwoWay}" />
            <Setter Property="IsSelected" Value="{Binding IsSelected, Mode=TwoWay}" />
        </Style>
</TreeView.ItemContainerStyle>

这会导致我用于TreeViewItem的主题被忽略。它使选定的项目文本为黑色,背景为深蓝色,因此难以阅读。有没有办法同时使用上面的主题和代码?

2 个答案:

答案 0 :(得分:3)

尝试将BasedOn设为{StaticResource {x:Type TreeViewItem}}

这将采用TreeViewItems的默认样式(由主题提供)作为您的样式的基础。

答案 1 :(得分:0)

只需编写代码:

<TreeView.ItemContainerStyle> 
    <Style TargetType="{x:Type TreeViewItem}" BasedOn="{StaticResource {x:TypeTreeViewItem}"> 
        <Setter Property="IsExpanded" Value="{Binding IsExpanded, Mode=TwoWay}" /> 
        <Setter Property="IsSelected" Value="{Binding IsSelected, Mode=TwoWay}" /> 
    </Style> 
</TreeView.ItemContainerStyle>