2017-05-29 60 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