Выравнивание текста в списке - PullRequest
0 голосов
/ 04 декабря 2010

У меня есть этот код на странице xaml:

<ListBox Height="524" HorizontalAlignment="Left" Margin="12,6,0,0" Name="listBox1" VerticalAlignment="Top" Width="438" BorderThickness="1" BorderBrush="White" >
            <ListBox.ItemTemplate>
                <DataTemplate>
                    <StackPanel Orientation="Horizontal">
                        <TextBlock Text="{Binding Name}" Margin="5" TextAlignment="Left" HorizontalAlignment="Left" />
                        <TextBlock Text="{Binding DeadLine}" Margin="5" TextAlignment="Right" HorizontalAlignment="Right" />
                    </StackPanel>
                </DataTemplate>
            </ListBox.ItemTemplate>
        </ListBox>

Как видите, я делю свой список на 2 текстовых поля и пытаюсь поместить один текст в крайнее левое положение, а другой - в крайнее правое положение в строке. Но я не могу, это не работает. Я что-то пропустил? Как можно поставить выровненный крайний срок вправо?

Спасибо, Оскар

Ответы [ 2 ]

2 голосов
/ 05 декабря 2010

Только что получил решение, смешивающее многие решения, которые я нашел (включая данные на этом форуме)

<ListBox Height="524" HorizontalAlignment="Left" Margin="12,6,0,0" Name="listBox1" VerticalAlignment="Top" Width="438" BorderThickness="1" BorderBrush="White" >
            <ListBox.ItemContainerStyle>
                <Style TargetType="ListBoxItem">
                    <Setter Property="HorizontalContentAlignment" Value="Stretch" />
                </Style>
            </ListBox.ItemContainerStyle>
            <ListBox.ItemTemplate>
                <DataTemplate>
                    <Grid>
                        <TextBlock Text="{Binding Name}"/>
                        <TextBlock Text="{Binding DeadLine}" HorizontalAlignment="Right"/>
                    </Grid>
                </DataTemplate>
            </ListBox.ItemTemplate>
        </ListBox>

tks!

0 голосов
/ 04 декабря 2010

Вы должны убедиться, что ItemContainerStyle имеет HorizontalContentAlignment для растяжения.

Это работает для меня:

<ListBox Height="524" HorizontalAlignment="Left" Margin="12,6,0,0" Name="listBox1" VerticalAlignment="Top" Width="438" BorderThickness="1" BorderBrush="White" >
    <ListBox.ItemContainerStyle>
        <Style TargetType="ListBoxItem">
            <Setter Property="HorizontalContentAlignment" Value="Stretch" />
        </Style>
    </ListBox.ItemContainerStyle>
    <ListBox.ItemTemplate>
        <DataTemplate>
            <StackPanel HorizontalAlignment="Stretch" Orientation="Horizontal" Background="Red">
                <TextBlock Text="{Binding Name}" Margin="5" TextAlignment="Left" HorizontalAlignment="Left" />
                <TextBlock Text="{Binding DeadLine}" Margin="5" TextAlignment="Right" HorizontalAlignment="Right" />
            </StackPanel>
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...