Как переместить текст в центр ListBox? - PullRequest
2 голосов
/ 03 февраля 2012

Я почти все перепробовал, но по какой-то причине он не работает

<StackPanel Orientation="Vertical" Grid.Row="1" Margin="5,30,5,10">
    <TextBlock Text="View Options" FontSize="25" Style="{StaticResource PhoneTextNormalStyle}"/>
    <ListBox HorizontalContentAlignment="Stretch" Background="Red" ItemsSource="{Binding Path=ViewOptions}" Margin="10">
        <ListBox.ItemTemplate>
            <DataTemplate>
                <TextBlock HorizontalAlignment="Center" TextAlignment="Center" Text="{Binding}" FontSize="35" Margin="20" Style="{StaticResource PhoneTextNormalStyle}"/>
            </DataTemplate>
        </ListBox.ItemTemplate>
    </ListBox>
</StackPanel>

Выше XAML дают мне

enter image description here

Как переместить textblock до center из listboxitem?

Ответы [ 3 ]

3 голосов
/ 03 февраля 2012
<StackPanel Orientation="Vertical" Grid.Row="1" Margin="5,30,5,10">
    <TextBlock Text="View Options" FontSize="25" Style="{StaticResource PhoneTextNormalStyle}"/>
    <ListBox x:Name="listBox" HorizontalContentAlignment="Stretch"  ItemsSource="{Binding Path=ViewOptions}" Margin="10,30,10,10">
        <ListBox.ItemContainerStyle>
            <Style TargetType="ListBoxItem">
                 <Setter Property="HorizontalContentAlignment" Value="Stretch" />
            </Style>
        </ListBox.ItemContainerStyle>
    <ListBox.ItemTemplate>
        <DataTemplate>
            <TextBlock  HorizontalAlignment="Center" TextAlignment="Center" Text="{Binding}" FontSize="35" Margin="20" Style="{StaticResource PhoneTextNormalStyle}"/>
         </DataTemplate>
     </ListBox.ItemTemplate>
   </ListBox>
</StackPanel>
1 голос
/ 03 февраля 2012

Я только что попробовал это, и это сработало.Два возможных различия:

  • Мой источник данных был простым List<string>.
  • Я удалил ссылки на ваши стили (т. Е. PhoneTextNormalStyle).

Связываете ли вы простые данные?

Указывает ли PhoneTextNormalStyle выравнивание по левому краю?

1 голос
/ 03 февраля 2012

Вам нужно изменить HorizontalContentAlignment на центр

<StackPanel Orientation="Vertical" Grid.Row="1" Margin="5,30,5,10">
<TextBlock Text="View Options" FontSize="25" Style="{StaticResource PhoneTextNormalStyle}"/>
<ListBox HorizontalContentAlignment="Center" Background="Red" ItemsSource="{Binding Path=ViewOptions}" Margin="10">
    <ListBox.ItemTemplate>
        <DataTemplate>
            <TextBlock HorizontalAlignment="Center" TextAlignment="Center" Text="{Binding}" FontSize="35" Margin="20" Style="{StaticResource PhoneTextNormalStyle}"/>
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>

...