WP7中列表框中TextBlock的文本对齐方式

时间:2012-03-06 01:14:36

标签: windows-phone-7 listbox textblock

我在列表框中对齐文本时遇到问题。我基本上试图创建类似于iOS中的uitableview的列表框。

在下面的代码中,左边TextBlock的设置正是我想要的,但是我无法让正确的TextBlock表现得像我想要的那样。现在文本是右对齐的,这样当文本太长而无法放在屏幕上时,它会在开头剪切文本,只显示文本的结尾。我想要发生的是将TextBlock右对齐,使其从右侧伸展,但如果左对齐则包含文本,以便显示文本的开头并切断文本的结尾。

<phone:PhoneApplicationPage.Resources>
    <Style x:Key="ListBoxItemStretchContentStyle" TargetType="ListBoxItem">
        <Setter Property="HorizontalContentAlignment" Value="Stretch"/>
    </Style>
</phone:PhoneApplicationPage.Resources>


<ListBox Height="327" Margin="8,274,0,0" Name="myListBox" Width="442" ItemContainerStyle="{StaticResource ListBoxItemStretchContentStyle}">
            <ListBox.ItemTemplate>
                <DataTemplate>
                        <Grid>
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition Width="Auto"/>
                                <ColumnDefinition Width="*"/>
                            </Grid.ColumnDefinitions>
                            <TextBlock Grid.Column="0" Text="Title Text" HorizontalAlignment="Left" Name="cellTitle" />
                            <TextBlock Grid.Column="1" Text="This is some text that is too long to fit on the screen" HorizontalAlignment="Right" TextAlignment="Left" Padding="20,0,0,0" />
                    </Grid>
                </DataTemplate>
            </ListBox.ItemTemplate>
        </ListBox>

2 个答案:

答案 0 :(得分:0)

TextTrimming可能会有所帮助。 设置TextWrapping="NoWrap"后,您可以尝试TextTrimming="WordEllipsis"。然后尝试修改TextAlignment

希望有所帮助。

答案 1 :(得分:0)

如果我理解正确,你可以设置文本块的maxwidth参数以防止它重叠吗?

MaxWidth=""