J'ai un TextBox
contrôle dans un StackPanel
dont Orientation
est défini sur Horizontal
, mais je ne peux pas faire en sorte que la zone de texte remplisse l'espace StackPanel restant.
XAML:
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Height="180" Width="324">
<StackPanel Background="Orange" Orientation="Horizontal" >
<TextBlock Text="a label" Margin="5" VerticalAlignment="Center"/>
<TextBox Height="25" HorizontalAlignment="Stretch" Width="Auto"/>
</StackPanel>
</Window>
Et voici à quoi ça ressemble:
Pourquoi cette TextBox ne remplit-elle pas le StackPanel?
Je sais que je peux avoir plus de contrôle en utilisant un Grid
contrôle, je suis juste confus au sujet de la mise en page.
HorizontalAlignment
. :)FlowDirection="RightToLeft"
leDockPanel
, donc votre dernier enfant sera celui de gauche, en utilisant l'espace restant.Je recommanderais plutôt d'utiliser une grille:
L'autre moyen de contourner ce problème consiste à empiler l'étiquette sur le dessus plutôt que sur la droite. J'ai remarqué qu'UWP a une propriété d'en-tête intégrée que vous pouvez utiliser pour cela, je ne sais pas si la propriété d'en-tête existe pour WPF.
la source
Ancienne question par sujet actuel:
est la chose requise. Assurez-vous simplement de supprimer le fichier
width
.la source
Je suis capable de remplir un StackPanel avec une zone de texte en utilisant ce qui suit:
Zone de texte Remplissage horizontal du panneau de pile
la source