如图,在主窗体中插入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>
效果如下
依次展开各级菜单
根节点的下拉按钮已经隐藏。