Limiter un TextBox à la place disponible dans un ScrollViewer
Bonjour à tous et à toutes.
J'ai une vue contenant un ScrollViewer afin que des barres de scroll apparaissent si la vue est trop petite.
Ça marche très bien.
Seulement, j'ai un Grid dont le Row definition est le suivant :
Code:
1 2 3 4 5
| <Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions> |
Le dernier élément prend la place disponible. Ce dernier élément est le suivant :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| <GroupBox Margin="2,2,2,2"
Grid.Column="0"
Grid.ColumnSpan="3"
Grid.Row="2"
Grid.RowSpan="1"
VerticalAlignment="Stretch">
<GroupBox.Header>
<Label Style="{StaticResource ItemGroupBox}">Description</Label>
</GroupBox.Header>
<TextBox ScrollViewer.VerticalScrollBarVisibility="Auto"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
TextWrapping="Wrap"
Text="{Binding Path=Commentaires, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True, ValidatesOnExceptions=True}"
AcceptsReturn="True"
IsEnabled="{Binding DataContext.CanEdit, Mode=OneWay, TargetNullValue=false, RelativeSource={RelativeSource AncestorType={x:Type view:PageTrigrammesView}}}"
Style="{StaticResource TextBoxCheckedTemplate}"
ToolTip="Description de cette version du fichier de trigrammes (optionnel)"/>
</GroupBox> |
Il s'agit de la partie description d'une propriété d'une base de données... passons...
Le problème vient de TextBox : En effet, lorsqu'il est vide, sa taille prend exactement la place qu'il lui reste.
Mais lorsqu'il n'est pas vide, au lieu de faire apparaître sa propre scrollbar lorsqu'il n'a plus assez de place, il devient de plus en plus grand, faisant apparaître la scrollbar principale.
Si je lui fixe sa maxheight ça fonctionne mais du coup c'est bloqué et ça ne fait pas beau.
Comment faire pour qu'il prenne la place disponible sans utiliser son contenu pour déterminer sa propre taille ?
Je ne sais pas si c'est clair mais c'est vraiment chiant !