我正在制作一个UWP应用程序,并尝试在ListBoxItem中放置两个TextBlock
。水平对齐属性似乎不起作用。我正在尝试将第一个文本块向左对齐,将第二个文本块向右对齐。目前我正在尝试使用网格。这是我的 XAML:
<Pivot.ItemTemplate>
<DataTemplate>
<ListBox ItemsSource="{Binding List}"
SelectionMode="Multiple"
ScrollViewer.HorizontalScrollMode="Disabled">
<ListBox.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="9*"></ColumnDefinition>
<ColumnDefinition Width="1*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0"
Text="{Binding read}"
HorizontalAlignment="Left"
VerticalAlignment="Center"/>
<TextBlock Text="{Binding num}"
Grid.Column="1"/>
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</DataTemplate>
</Pivot.ItemTemplate>
您需要在此处执行以下几点操作:
首先,您需要拉伸ListBoxItem
的对齐方式,而不是ListBox
本身。
<ListBox>
<ListBox.ItemContainerStyle>
<Style TargetType="ListBoxItem">
<Setter Property="HorizontalContentAlignment" Value="Stretch" />
</Style>
</ListBox.ItemContainerStyle>
</ListBox>
其次,您应该将Width="1*"
更改为Width="Auto"
否则 num TextBlock
可能会被截断。然后,您可以删除Width="9*"
并将TextWrapping="Wrap"
添加到读取TextBlock
以便文本如果太长,则会转到下一行。您也可以安全地删除HorizontalAlignment="Left"
。
尝试将 HorizontalContentAlign 属性设置为在列表框中拉伸:
<ListBox ItemsSource="{Binding List}"
HorizontalContentAlignment="Stretch"
SelectionMode="Multiple"
ScrollViewer.HorizontalScrollMode="Disabled">
默认情况下,水平内容对齐设置为左侧,并且您的列表项不会拉伸以使用所有可用空间,这就是为什么它的内容不会正确向右排列的原因。