在TreeView中定位元素

时间:2017-02-26 18:18:04

标签: wpf xaml

我的XAML中有一个TreeView,其中每个元素都是一个StackPanel,它允许每个元素都有一个图像和一些文本。它们被定位在另一个as you can see here.

之上

我想要的是,TreeView可能无法实现这一点,因为项目(在本例中为“FamilyMember”)是水平显示而不是垂直显示。因此,例如,您单击该系列的下拉列表 - 您不会在垂直列表中看到它们,而是在水平列表中看到它们。

XAML如下:

<TreeView Name="trvFamilies">
        <TreeView.Resources>
            <HierarchicalDataTemplate DataType="{x:Type self:Family}" ItemsSource="{Binding Members}">
                <StackPanel Orientation="Horizontal">
                    <Image Source="{StaticResource ImageGroup}" Margin="0,0,5,0" />
                    <TextBlock Text="{Binding Name}" />
                    <TextBlock Text=" [" Foreground="Blue" />
                    <TextBlock Text="{Binding Members.Count}" Foreground="Blue" />
                    <TextBlock Text="]" Foreground="Blue" />
                </StackPanel>
            </HierarchicalDataTemplate>
            <DataTemplate DataType="{x:Type self:FamilyMember}">

                <StackPanel Orientation="Horizontal">
                    <TextBlock Text="{Binding Name}" />
                    <TextBlock Text=" (" Foreground="Green" />
                    <TextBlock Text="{Binding Age}" Foreground="Green" />
                    <TextBlock Text=" years)" Foreground="Green" />
                </StackPanel>
            </DataTemplate>
        </TreeView.Resources>
    </TreeView>

在DataTemplate元素中进行的任何尝试仅适用于每个垂直对齐的元素。

如果这是我的目标,也许我的努力是错误的。如果是这样,如果替代面板或控件比我更乐意使用它。

谢谢!

0 个答案:

没有答案