我的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元素中进行的任何尝试仅适用于每个垂直对齐的元素。
如果这是我的目标,也许我的努力是错误的。如果是这样,如果替代面板或控件比我更乐意使用它。
谢谢!