水平方向的WPF树视图?

水平方向的WPF树视图?,wpf,treeview,Wpf,Treeview,改变WPF树视图方向的最有效方法是什么。我希望使用展开折叠功能从左到右而不是从上到下工作。也就是说,当我点击树节点的展开按钮时,我会看到它的子节点出现在父节点的右边,缩进应该是自上而下的。另外,连接节点的垂直线现在必须是水平的。这是一篇很好的文章,详细介绍了如何做这类事情。如果您只想在树中的某个特定级别(而不是像他的文章所示的所有级别)上进行水平布局,请继续展开,然后只需将treevieItem上的ItemsPanel属性设置为您想要的StackPanel级别 起初对我来说并不直观,但是您可以通

改变WPF树视图方向的最有效方法是什么。我希望使用展开折叠功能从左到右而不是从上到下工作。也就是说,当我点击树节点的展开按钮时,我会看到它的子节点出现在父节点的右边,缩进应该是自上而下的。另外,连接节点的垂直线现在必须是水平的。

这是一篇很好的文章,详细介绍了如何做这类事情。

如果您只想在树中的某个特定级别(而不是像他的文章所示的所有级别)上进行水平布局,请继续展开,然后只需将
treevieItem
上的
ItemsPanel
属性设置为您想要的
StackPanel
级别

起初对我来说并不直观,但是您可以通过
HierarchycalDataTemplate
ItemContainerStyle
属性来访问该属性,该属性位于您希望水平的层之上

像这样:

<ItemsPanelTemplate
    x:Key="ItemsPanelForHorizontalItems">
    <StackPanel
        Orientation="Horizontal"/>
</ItemsPanelTemplate>

<HierarchicalDataTemplate
    x:Key="DataTemplateForLayerAboveHorizontalItems"
    DataType="{x:Type viewModel:ThingHavingHorizontalItems}"
    ItemsSource="{Binding HorizontalItems}"
    ItemTemplate="{StaticResource DataTemplateForLayerWithHorizontalItems}">
    <HierarchicalDataTemplate.ItemContainerStyle>
        <Style
            TargetType="TreeViewItem">
            <Setter
                Property="ItemsPanel"
                Value="{StaticResource ItemsPanelForHorizontalItems}"/>
        </Style>
    </HierarchicalDataTemplate.ItemContainerStyle>
    <ContentControl
        Content="{Binding}"
        ContentTemplate="{StaticResource DataTemplateForThingHavingHorizontalItems}"/>
</HierarchicalDataTemplate>


遵循此模式可以为树中的任何单个层(根层除外)设置水平布局。如果您希望根层是水平的,那么只需在
TreeView
上设置
ItemsPanel
属性,以使用水平
StackPanel

我应该添加一点,即扩展一个方向与其他方向不同的层会破坏UI虚拟化。看看你是否知道如何解决这个问题