/ / Un bouton WPF RichTextBox + dans un StackPanel => quel bordel? - wpf, richtextbox, width, stackpanel

Un bouton RichTextBox + WPF dans un StackPanel => quel bordel? - wpf, richtextbox, largeur, stackpanel

Ce code:

<StackPanel Orientation="Horizontal">
<RichTextBox />
<Button Content="Dialog" />
</StackPanel>

affiche le bouton quelque part sur le côté gauche de StackPanel SUR la RichTextBox, POURQUOI?

edit: Oh, je viens de voir que c'est un problème de largeur. La RTB n'a presque pas de largeur et le bouton est à sa droite.

edit: il semble que je rencontre ce bug: WPF RichTextBox sans largeur définie

la solution ne fonctionne pas pour moi!

Réponses:

1 pour la réponse № 1

Il serait préférable d’utiliser une grille et les propriétés HorizontalAlignment (et VerticalAlignment) du RTB.

<Grid HorizontalAlignment="Stretch"
VerticalAlignment="Stretch">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<RichTextBox HorizontalAlignment="Stretch" VerticalAlignment="Stretch" />
<Button Grid.Column="1"
Content="Dialog"
HorizontalAlignment="Right"
VerticalAlignment="Bottom" />
</Grid>

0 pour la réponse № 2

La disposition de votre code devrait être quelque chose comme:

<StackPanel Margin="105,73,124,54" Orientation="Horizontal">
<RichTextBox Width="312" />
<Button Content="Dialog" VerticalAlignment="Bottom" Height="56" />
</StackPanel>

Vous devez dimensionner chaque élément (contrôle) individuellement, sinon vous obtenez une mise en page similaire à celle que vous aviez initialement (tous mélangés et écrasés ensemble).


0 pour la réponse № 3

Désolé, j'ai oublié de mentionner, si vous regardez lePanneau "Disposition" (pour la RichTextBox), une flèche vers le bas s’affiche en bas. cliquez dessus pour ouvrir les "options avancées". Dans celui-ci, vous souhaitez définir votre "HorizontalContentAlignment et votre VertialContentAlignment" sur étirement. (Les 2 dernières options pour chaque).

Je suis désolé de laisser cela. ma faute. :)

Capture d'écran: