Autoriser redimensionnement de TextBox mais ne pas se développer sur l'entrée utilisateur
J'ai une zone de texte définie à l'intérieur d'une fenêtre comme ceci:
<Window x:Class="NS.MainWindow"
...
SizeToContent="WidthAndHeight">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="100" />
<ColumnDefinition MinWidth="200" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition MinHeight="50" />
</Grid.RowDefinitions>
<TextBlock Grid.Column="0" Grid.Row="0">Description:</TextBlock>
<TextBox Grid.Column="1" Grid.Row="0" TextWrapping="WrapWithOverflow" />
</Grid>
</Window>
Le problème est que lorsque l'utilisateur tape dans la zone de texte il s'étend vers la droite depuis que la MinWidth est réglé. Ce que je veux vraiment, c'est le texte d'un retour à la ligne. Je peux le faire pour le faire si je change le MinWidth sur la colonne à la Largeur de la place. Cependant, si je fais cela, puis la zone de texte n'est plus redimensionne lorsque la Fenêtre est redimensionnée.
Est-il une manière que je peux avoir les deux? (c'est à dire redimensionner uniquement sur la Fenêtre de redimensionnement, sinon wrap)
source d'informationauteur Ray
Vous devez vous connecter pour publier un commentaire.
La raison pour laquelle vous êtes avoir ce comportement est parce que vous avez mis le de la Fenêtre SizeToContent propriété - qui, fondamentalement, autorise la Fenêtre pour redimensionner en fonction de la taille demandée par son contenu. Donc, comme vous le type en plus de choses, la zone de texte dit que j'ai besoin de plus d'espace, la fenêtre docilement se développe. Votre zone de texte ne serait pas progresser si vous ne définissez pas la SizeToContent propriété.
Je dirais donc que perdre la SizeToContent le setter de la propriété & Utilisation proportionnelle de la grille de calibrage. Ici, je dis faire de la Colonne n ° 2 deux fois la largeur de la Colonne n ° 1. La valeur par défaut "Étirer" la valeur de l'HorizontalAlignment et VerticalAlignment pour la Grille devrait veiller à ce que vos contrôles redimensionner correctement sur une fenêtre de redimensionnement.
Si vous venez d'ajouter le SizeToContent le setter de la propriété retour à l'extrait de code ci-dessus... vous auriez du voir certains comportement bizarre où la zone de texte initialement augmente avec le contenu du texte.. toutefois, si vous redimensionnez la fenêtre une fois.. la zone de texte allait cesser de croître. Étrange... ne peut pas expliquer ce comportement.
HTH
WPF zone de texte ne semble pas avoir l'option built-in.
Pour résoudre ce problème, vous pouvez utiliser une zone de texte personnalisé que les rapports souhaités (0, 0) de la taille. C'est un vilain hack, mais il fonctionne.
Dans votre MainWindow.xaml.cs fichier:
Puis, dans votre MainWindow.fichier xaml:
Modifier la deuxième ColumnDefinition être Width="*".