2017-05-29 3 views
1

Ich mache eine UWP-App und versuche, zwei TextBlock in einem ListBoxItem zu platzieren. Die HorizontalAlignment-Eigenschaft scheint nicht zu funktionieren. Ich versuche, den ersten TextBlock auf den linken und den zweiten TextBlock auf der rechten Seite auszurichten. Momentan versuche ich Grids zu verwenden. Hier ist meine XAML:Positionierung von Steuerelementen innerhalb von 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> 

Antwort

1

Ein paar Dinge, die Sie hier tun müssen:

Zuerst müssen Sie Strecke die Ausrichtung des ListBoxItem, nicht die ListBox selbst.

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

Zweitens sollten Sie Width="1*" zu Width="Auto" sonst die num ändernTextBlock könnte abgeschnitten werden. Dann können Sie Width="9*" entfernen und TextWrapping="Wrap" zu der lesenTextBlock hinzufügen, wenn Text in die nächste Zeile geht, wenn es zu lang ist. Sie können auch HorizontalAlignment="Left" sicher entfernen.

0

Versuchen Sie, die Horizontalcontentalignment Eigenschaft zu setzen in der List-Box zu strecken:

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

standardmäßig die Horizontalcontentalignment wird auf links, und Ihr listItem nicht alle strecken verwenden, um die zur Verfügung Raum, und deshalb wird Inhalt nicht richtig nach rechts ausgerichtet.

+0

@ravikumar Wenn Sie TheMintRubber verwenden möchten, sollten Sie den Code in Justin XL hinzufügen – lindexi

Verwandte Themen