WPF HeaderedItemsControl中的Autosize标头

问题描述

| 我正在使用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>