水平定位列表框中的控件



我正在制作一个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">

默认情况下,水平内容对齐设置为左侧,并且您的列表项不会拉伸以使用所有可用空间,这就是为什么它的内容不会正确向右排列的原因。

最新更新