Как сделать так, чтобы текст в списке был выровнен по правому краю? - PullRequest
1 голос
/ 08 июня 2010

Мой ListBox связан с 2 полями. Первый выровнен по левому краю, что хорошо, проблема со вторым, который должен быть выровнен по правому краю. Я пытался использовать TextAlignment = "Right", а также HorizontalAlignment = "Right", ни один из них не работал.

Вот пример кода:

<ListBox x:Name="_listBox"> 
 <ListBox.DataTemplate>
       <DataTemplate>
           <StackPanel Orientation="Horizontal" Margin="0,4,8,0">
                 <TextBlock Text="{Binding Path=ContainerNumber}" />
                 <TextBlock TextAlignment="Right" Text="{Binding Path=Content}"/>
           </StackPanel>
        </DataTemplate>
 </ListBox.DataTemplate>

Есть идеи?

1 Ответ

0 голосов
/ 09 июня 2010

Добавить к разметке StackPanel:

<StackPanel Orientation="Horizontal" HorizontalAlignment="Stretch" Margin="0,4,8,0">

Эта проблема заключается в том, что StackPanel не использует всю доступную ширину, поскольку по умолчанию он выровнен по горизонтали влево.

РЕДАКТИРОВАТЬ: В качестве альтернативы вам нужно стиль ListBoxItems:

<ListBox.Resources>
    <Style x:Key="{x:Type ListBoxItem}" TargetType="{x:Type ListBoxItem}">
        <Setter Property="HorizontalContentAlignment" Value="Stretch"/>
        <Setter Property="HorizontalAlignment" Value="Stretch"/>
    </Style>
</ListBox.Resources>

Надеюсь, это поможет.

...