我正在使用HeaderedItemsControl来显示人名。我还想显示一个包含3个标签的标题:标题,名字和姓氏。当名称很短时,这很容易。 但是,如果名字很长,则标题不再与名称匹配。我怎样才能解决这个问题?谢谢!
答案 0 :(得分:6)
不确定您是否真的想要使用此课程:
HeaderedItemsControl具有有限的默认样式。要使用自定义外观创建HeaderedItemsControl,请创建一个新的ControlTemplate。
无论如何,为了排队你可以使用共享大小的网格,例如:
<HeaderedItemsControl ItemsSource="{Binding Data}" Grid.IsSharedSizeScope="True">
<HeaderedItemsControl.Template>
<ControlTemplate TargetType="HeaderedItemsControl">
<StackPanel>
<ContentPresenter ContentSource="Header" />
<ItemsPresenter />
</StackPanel>
</ControlTemplate>
</HeaderedItemsControl.Template>
<HeaderedItemsControl.Header>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition SharedSizeGroup="A" />
<ColumnDefinition SharedSizeGroup="B" />
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="Name" />
<TextBlock Grid.Column="1" Text="Occupation" />
</Grid>
</HeaderedItemsControl.Header>
<HeaderedItemsControl.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition SharedSizeGroup="A" />
<ColumnDefinition SharedSizeGroup="B" />
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="{Binding Name}"/>
<TextBlock Grid.Column="1" Text="{Binding Occupation}" />
</Grid>
</DataTemplate>
</HeaderedItemsControl.ItemTemplate>
</HeaderedItemsControl>