WPF HeaderedItemsControl中的自动调整标题大小

3
我正在使用HeaderedItemsControl来显示人名。我还想显示一个包含3个标签的标题:称号、名字和姓氏。当名字很短时,这很容易实现。但是,当有一个非常长的名字时,标题就不再与名字匹配了。我该怎么办?谢谢!
1个回答

7

不确定您是否真的想使用这个类:

HeaderedItemsControl有一个有限的默认样式。要创建具有自定义外观的HeaderedItemsControl,请创建新的ControlTemplate。

无论如何,要对齐内容,您可以使用具有共享大小的Grids,例如:

<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>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接