Pourquoi une zone de texte ne s'étend-elle pas pour remplir l'espace dans un stackpanel ? Est-ce voulu ? Dans une grille, la zone de texte s'étend comme prévu.
Réponses
Trop de publicités?La réponse de Kent semble juste.
Pour encore forcer le remplacement du comportement de StackPanel, je pense que vous devriez dynamiquement calculer et définir la propriété Width des éléments contenus OU effectuer un remplacement funky de MeasureOverride. Je préférerais utiliser un autre gestionnaire de disposition/panneau. Quelques choses que j'ai notées..
- La valeur par défaut des propriétés HorizontalAlignment et VerticalAlignment des éléments enfants est Stretch (si vous ne spécifiez pas explicitement une valeur).
-
Le StackPanel étirera les éléments en fonction de la valeur de sa propriété Orientation. Donc
- Orientation=Horizontal signifie que tous les éléments seront étirés verticalement au maximum. Les éléments s'écoulent horizontalement.
- Orientation=Vertical signifie que tous les éléments seront étirés horizontalement au maximum. Les éléments s'écoulent verticalement.
- À moins d'être explicitement spécifiées, la largeur et la hauteur des éléments enfants sont NaN. Si vous spécifiez une valeur explicite, StackPanel les honorera par rapport aux paramètres d'alignement horizontal et vertical.
- Le StackPanel lui-même a des propriétés HorizontalAlignment et VerticalAlignment qui ajoutent une touche de mise en page supplémentaire. Vous pouvez expérimenter avec cet exemple.
La valeur par défaut est Stretch à la fois pour HorizontalAlignment et VerticalAlignment du contenu contenu dans un StackPanel.
Lorsque les propriétés Height et Width sont explicitement définies sur un élément, ces mesures ont une priorité plus élevée lors de la mise en page et annuleront les effets typiques du réglage de HorizontalAlignment sur Stretch.