2017-05-29 61 views
1

我正在制作UWP应用程序,并试图将两个TextBlock放置在ListBoxItem中。 Horizo​​ntalAlignment属性似乎不起作用。 我正在尝试将第一个TextBlock对齐到第二个TextBlock的右边。目前我正在尝试使用网格。这是我的XAML:在ListBox中水平定位控件

<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> 

回答

1

一对夫妇,你需要做的事情:

首先,你需要拉伸ListBoxItem的对齐,而不是ListBox本身。

<ListBox> 
    <ListBox.ItemContainerStyle> 
     <Style TargetType="ListBoxItem"> 
      <Setter Property="HorizontalContentAlignment" Value="Stretch" /> 
     </Style> 
    </ListBox.ItemContainerStyle> 
</ListBox> 

其次,你应该改变Width="1*"Width="Auto"否则NUMTextBlock可能会被截断。然后,您可以删除Width="9*"并将TextWrapping="Wrap"添加到读取TextBlock因此,如果文本太长,则会转到下一行。您也可以安全地删除HorizontalAlignment="Left"

0

尝试设置Horizo​​ntalContentAlignment属性ListBox中的伸展:

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

默认情况下,Horizo​​ntalContentAlignment设置为左,你的listItem不会延伸到使用所有可用空间,这就是为什么它的内容不会正确地被正确地分配。

+0

@ravikumar如果你想使用TheMintRubber方法,你应该在Justin XL中添加代码 – lindexi