在ListBox中水平定位控件

时间:2017-05-29 13:32:46

标签: xaml listbox uwp

我正在创建一个UWP应用程序并尝试在ListBoxItem中放置两个TextBlock。 Horizo​​ntalAlignment属性似乎不起作用。 我试图将第一个TextBlock对齐到左边,将第二个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> 

2 个答案:

答案 0 :(得分:1)

您需要做的一些事情:

首先,您需要拉伸 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"

答案 1 :(得分:0)

尝试将Horizo​​ntalContentAlignment属性设置为在ListBox中拉伸:

<ListBox ItemsSource="{Binding List}"
         HorizontalContentAlignment="Stretch"
         SelectionMode="Multiple"
         ScrollViewer.HorizontalScrollMode="Disabled">

默认情况下,Horizo​​ntalContentAlignment设置为left,并且listItem不会拉伸以使用所有可用空间,这就是为什么它的内容不会正确地对齐到右边。