如何作为项目列表框水平对齐中心?

时间:2010-10-30 20:03:24

标签: wpf

有列表框

<ListBox>
    <ListBox.ItemTemplate>
    <DataTemplate>
        <DockPanel>
        <Button Content="{Binding name_trainer}" Tag="{Binding idPersonTrainer}" DockPanel.Dock="Top" HorizontalAlignment="Center">
        </Button>
        </DockPanel>
    </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>

alt text

4 个答案:

答案 0 :(得分:5)

<ListBox HorizontalContentAlignment="Center">
  <ListBox.ItemTemplate>
    <DataTemplate>
      <TextBlock Text="{Binding yourstuff}" FontSize="72"/>
    </DataTemplate>
  </ListBox.ItemTemplate>
</ListBox>

答案 1 :(得分:1)

<ListBox.ItemsPanel>
    <ItemsPanelTemplate>
        <StackPanel HorizontalAlignment="Center"/>
    </ItemsPanelTemplate>
</ListBox.ItemsPanel>

答案 2 :(得分:1)

接受的答案是正确的,但我需要更多: 不仅要居中,还要水平伸展项目。只是将Horizo​​ntalAlignment更改为Stretch不起作用,所以,这是如何完成的:

<ItemsPanelTemplate>
    <StackPanel HorizontalAlignment="Stretch">
        <StackPanel.Resources>
            <Style TargetType="ListBoxItem">
                <Setter Property="HorizontalContentAlignment" Value="Center"/>
            </Style>
        </StackPanel.Resources>
    </StackPanel>
</ItemsPanelTemplate>

答案 3 :(得分:0)

您可能必须使DockPanel居中,而不是其中的数据。我已经在StackPanel看到了这种行为,因为面板缩小为内容。中心最终正常工作,但在错误的背景下。