我在列表框中对齐文本时遇到问题。我基本上试图创建类似于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>
答案 0 :(得分:0)
TextTrimming
可能会有所帮助。
设置TextWrapping="NoWrap"
后,您可以尝试TextTrimming="WordEllipsis"
。然后尝试修改TextAlignment
。
希望有所帮助。
答案 1 :(得分:0)
如果我理解正确,你可以设置文本块的maxwidth参数以防止它重叠吗?
MaxWidth=""