2017-10-07 3 views
0

J'essaye de faire deux étiquettes en prenant chacune 50% de la largeur du parent (le StackLayout) J'ai essayé avec Fill, FillAndExpand, StartAndExpand sur les deux Label mais il n'a pas travail:StackLayout deux colonnes prenant chacune la moitié de l'espace

<StackLayout Orientation="Horizontal"> 
    <Label Text="AAAAAAAAAAAAAAAAAAAAAAAAA" HorizontalOptions="FillAndExpand" /> 
    <Label Text="BBBB" HorizontalOptions="FillAndExpand" /> 
</StackLayout> 

Répondre

1

Utilisez à la place un Grid.

XAML

<Grid> 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition Width="*"/> 
     <ColumnDefinition Width="*"/> 
    </Grid.ColumnDefinitions> 
    <Label Text="AAAAAAAAAAAAAAAAAAAAAAAAA" Grid.Column="0"/> 
    <Label Text="BBBB" Grid.Column="1"/> 
</Grid> 

Les deux * s signifient les colonnes auront la même largeur. Si vous voulez que la première colonne soit deux fois plus grande que la seconde, vous pouvez changer la première en 2*.

Vous pouvez également utiliser EndAndExpand d'avoir le texte aligné à droite

+0

grâce. Je cherchais à comprendre comment utiliser StackLayout, je connaissais déjà Grid. Mais je marque ta réponse comme une solution puisque je ne pense pas que ce soit possible avec StackLayout –

+0

Oui je ne crois pas que ce soit possible avec un StackLayout seul. Si vous devez en utiliser un, vous pouvez toujours placer la grille dans un StackLayout. – cvanbeek

+0

Je ne comprends pas pourquoi StackLayout avec FillAndExpand défini sur les deux étiquettes ne fonctionne pas. Comme j'utilise 'expand', ne devrait-il pas allouer 50% de l'espace disponible pour chaque Label? –