9
votes

Éléments commençant par le centre d'un StackPanel

Comment puis-je insérer des éléments dans un StackPanel, et ils commencent à positionné par centre? Quelque chose comme ça:

| _ _ x _ _ |

| _ x x _ _ |

| _ x x x _ |

Les "X" sont les éléments, et le "_" sont un espace vide.

Y a-t-il déjà implémenté quelque chose?


0 commentaires

4 Réponses :


0
votes

Cela dépend un peu sur les éléments que vous ajoutez à la StackPanel, mais en général, recherchez les éléments suivants: Assurez-vous que chaque élément a l'horizontalalImignement réglé pour étirer (de sorte qu'elles s'étendent toute la largeur), puis définissent l'horizontalcontallmentIntientalement à Centre.


0 commentaires

1
votes

enveloppez les éléments d'un élément qui a horizontalalignement code> défini sur étirement code>, E.g.:

<StackPanel>
  <Border HorizontalAlignment="Stretch">
    <TextBlock Text="something short" HorizontalAlignment="Center"/>
  </Border>
  <Border HorizontalAlignment="Stretch">
    <TextBlock Text="something a bit longer" HorizontalAlignment="Center"/>
  </Border>
  <Border HorizontalAlignment="Stretch">
    <TextBlock Text="something more than a bit longer" HorizontalAlignment="Center"/>
  </Border>
</StackPanel>


0 commentaires

29
votes

Vous pouvez envelopper vos éléments dans une grille : xxx

C'est l'approche la plus simple à mon avis. Vous devez également vous assurer que la largeur de la StackPanel = "auto" et la largeur de la grille = "720" (une valeur fixe selon les besoins).


0 commentaires

1
votes
<StackPanel>
  <StackPanel HorizontalAlignment="Center" Orientation="Horizontal">
    <!-- element x -->
  </StackPanel>
  <StackPanel HorizontalAlignment="Center" Orientation="Horizontal">
    <!-- element x -->
    <!-- element x -->
  </StackPanel>
  <StackPanel HorizontalAlignment="Center" Orientation="Horizontal">
    <!-- element x -->
    <!-- element x -->
    <!-- element x -->
  </StackPanel>
<StackPanel>
This produces the example you gave.

0 commentaires