Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 树视图的父节点之间的空间_C#_Wpf_Xaml_Layout_Treeview - Fatal编程技术网

C# 树视图的父节点之间的空间

C# 树视图的父节点之间的空间,c#,wpf,xaml,layout,treeview,C#,Wpf,Xaml,Layout,Treeview,我有一个TreeView,其中父节点和子节点绑定到相同的对象类型。我想做的是有额外的空间,或者创建一些其他的方法来分离顶级节点 例如,如果正常情况下是这样: A B C F D E 我希望它看起来像这样: A B C F (space here) D E 下面是我的代码-为了将TreeView用作组合框,已经有很多样式 使用demo2:并为顶级层次结构数据模板在StackPanel中添加上边距 例如: 使用demo2:并为顶级层次结构数据模板在StackPanel中添

我有一个
TreeView
,其中父节点和子节点绑定到相同的对象类型。我想做的是有额外的空间,或者创建一些其他的方法来分离顶级节点

例如,如果正常情况下是这样:

A
 B
 C
  F
D
 E
我希望它看起来像这样:

A
 B
 C
  F
(space here)
D
 E
下面是我的代码-为了将TreeView用作组合框,已经有很多样式


使用demo2:并为顶级
层次结构数据模板在StackPanel中添加上边距
例如:


使用demo2:并为顶级
层次结构数据模板在StackPanel中添加上边距
例如:


试试这个

        <TreeView>
        <TreeViewItem Header="Employee1">
            <TreeViewItem Header="Jesper"/>
            <TreeViewItem Header="Aaberg"/>
            <TreeViewItem Header="12345"/>
        </TreeViewItem>
        **<Separator />**
        <TreeViewItem Header="Employee2">
            <TreeViewItem Header="Dominik"/>
            <TreeViewItem Header="Paiha"/>
            <TreeViewItem Header="98765"/>
        </TreeViewItem>
    </TreeView>

****
或者你可以为带有分隔符的项目创建一个DataTemplate

        <TreeView>
        <TreeViewItem Header="Employee1">
            <TreeViewItem Header="Jesper"/>
            <TreeViewItem Header="Aaberg"/>
            <TreeViewItem Header="12345"/>
        </TreeViewItem>
        **<Separator />**
        <TreeViewItem Header="Employee2">
            <TreeViewItem Header="Dominik"/>
            <TreeViewItem Header="Paiha"/>
            <TreeViewItem Header="98765"/>
        </TreeViewItem>
    </TreeView>

****

或者你可以为项目制作一个数据模板,模板内有分隔符

好的,让我们挖掘一些老问题:)

对于顶层和嵌套层,只需使用不同的
ItemContainerStyle
TreeView.ItemContainerStyle
将以顶级项为目标,而
hierarchycalDataTemplate.ItemContainerStyle
将以嵌套项为目标

<Style x:Key="TreeViewItemStyle" TargetType="TreeViewItem">
    <Setter Property="IsExpanded" Value="True" />
</Style>
<!-- Special style for the top level with top/bottom margin of 5 -->
<Style x:Key="TopTreeViewItemStyle" TargetType="TreeViewItem" BasedOn="{StaticResource TreeViewItemStyle}">
    <Setter Property="Margin" Value="0 5" />
</Style>

...


<TreeView 
    x:Name="GroupsCB"
    Style="{StaticResource TreeViewBoxStyle}"
    ItemsSource="{Binding Mode=OneTime}"
    ItemContainerStyle="{StaticResource TopTreeViewItemStyle}"
...


<HierarchicalDataTemplate 
    x:Key="GroupTreeItemTemplate"
    ItemsSource="{Binding Children, Mode=OneTime}"
    ItemContainerStyle="{StaticResource TreeViewItemStyle}"

...

好吧,让我们挖掘一些老问题:)

对于顶层和嵌套层,只需使用不同的
ItemContainerStyle
TreeView.ItemContainerStyle
将以顶级项为目标,而
hierarchycalDataTemplate.ItemContainerStyle
将以嵌套项为目标

<Style x:Key="TreeViewItemStyle" TargetType="TreeViewItem">
    <Setter Property="IsExpanded" Value="True" />
</Style>
<!-- Special style for the top level with top/bottom margin of 5 -->
<Style x:Key="TopTreeViewItemStyle" TargetType="TreeViewItem" BasedOn="{StaticResource TreeViewItemStyle}">
    <Setter Property="Margin" Value="0 5" />
</Style>

...


<TreeView 
    x:Name="GroupsCB"
    Style="{StaticResource TreeViewBoxStyle}"
    ItemsSource="{Binding Mode=OneTime}"
    ItemContainerStyle="{StaticResource TopTreeViewItemStyle}"
...


<HierarchicalDataTemplate 
    x:Key="GroupTreeItemTemplate"
    ItemsSource="{Binding Children, Mode=OneTime}"
    ItemContainerStyle="{StaticResource TreeViewItemStyle}"

...

他没有使用
treevieItem
s,而是绑定,所以我认为这没有帮助。他没有使用
treevieItem
s,而是绑定,所以我认为这没有帮助。他说所有对象都是同一类型的,所以这没有帮助。@svick,这就是这样做的方法。为什么你认为OP的对象类型是固定的,不可能改变?阅读他的问题的第一句。我不认为因为边距而改变类的层次结构是明智的。他说所有的对象都是同一类型的,所以这没有帮助。@svick,这就是这样做的方法。为什么你认为OP的对象类型是固定的,不可能改变?阅读他的问题的第一句。我不认为因为利润而改变你的等级结构是明智的。我已经好几年没有接触过WPF了,所以我无法验证这是正确的答案。不用担心。。。如果有人在寻找类似的东西,他可能会偶然发现答案并尝试:)我已经多年没有接触过WPF了,所以我无法验证这是正确的答案。不用担心。。。如果有人在寻找类似的东西,他可能会偶然发现答案并尝试:)