Как в списке предметов горизонтальный центр выравнивания? - PullRequest
1 голос
/ 31 октября 2010

A есть список

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

5 голосов
/ 30 апреля 2014
<ListBox HorizontalContentAlignment="Center">
  <ListBox.ItemTemplate>
    <DataTemplate>
      <TextBlock Text="{Binding yourstuff}" FontSize="72"/>
    </DataTemplate>
  </ListBox.ItemTemplate>
</ListBox>
1 голос
/ 31 октября 2010
<ListBox.ItemsPanel>
    <ItemsPanelTemplate>
        <StackPanel HorizontalAlignment="Center"/>
    </ItemsPanelTemplate>
</ListBox.ItemsPanel>
1 голос
/ 20 февраля 2013

Принятый ответ правильный, однако мне нужно было немного больше: не только центрировать, но и горизонтально растягивать элементы .Простое изменение HorizontalAlignment на Stretch не сработало, поэтому вот как это делается:

<ItemsPanelTemplate>
    <StackPanel HorizontalAlignment="Stretch">
        <StackPanel.Resources>
            <Style TargetType="ListBoxItem">
                <Setter Property="HorizontalContentAlignment" Value="Center"/>
            </Style>
        </StackPanel.Resources>
    </StackPanel>
</ItemsPanelTemplate>
0 голосов
/ 31 октября 2010

Возможно, вам придется центрировать DockPanel, а не данные внутри него. Я видел такое поведение с StackPanel, потому что панель сжимается до содержимого. Центрирование работает правильно, но в неверном контексте.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...