问题描述
|
我正在使用HeaderedItemsControl显示人员姓名。我还想显示一个包含3个标签的标题:标题,名字和姓氏。名称短时,这很容易。
但是,当名字很长时,标头不再与名字匹配。我怎样才能解决这个问题?谢谢!
解决方法
不知道您是否真的想使用此类:
HeaderedItemsControl具有有限的默认样式。若要创建具有自定义外观的HeaderedItemsControl,请创建一个新的ControlTemplate。
无论如何,要排列内容,您可以使用共享大小的Grid,例如:
<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>