如图,在主窗体中插入TreeView,会有一个根节点的标签,且不带样式(样式的TargetType是TreeViewItem,在根节点上没有起作用)。一般导航目录都是从一级菜单开始展示。

·代码如下(注:其中TreeViewItemStyle单独写到了资源字典里,没有写在窗体xmal里)
<TreeView BorderThickness="0" Background="Transparent" ItemsSource="{Binding TreeView}">
<TreeView.ItemContainerStyle>
<Style TargetType="TreeViewItem">
<Setter Property="IsExpanded" Value="True"/>
</Style>
</TreeView.ItemContainerStyle>
<TreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding Children}"
ItemContainerStyle="{StaticResource TreeViewItemStyle}">
<TextBlock Text="{Binding Name}"/>
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>
在TreeView部分的代码加入一个ItemPresenter设置
<TreeView BorderThickness="0" Background="Transparent" ItemsSource="{Binding TreeView}">
<TreeView.ItemContainerStyle>
<Style TargetType="TreeViewItem">
<Setter Property="IsExpanded" Value="True"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="TreeViewItem">
<ItemsPresenter Margin="0"/>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</TreeView.ItemContainerStyle>
<TreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding Children}"
ItemContainerStyle="{StaticResource TreeViewItemStyle}">
<TextBlock Text="{Binding Name}"/>
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>
效果如下

依次展开各级菜单

根节点的下拉按钮已经隐藏。
文章讲述了如何在WPF中使用TreeView时,解决根节点样式问题,以及如何隐藏根节点的下拉按钮,通过添加ItemContainerStyle和ControlTemplate来定制ItemPresenter实现导航目录的一级菜单展示。
713

被折叠的 条评论
为什么被折叠?



