Je souhaite une disposition de grille avec deux lignes et séparateur entre elles. Les lignes doivent avoir une hauteur minimale de 80 pixels.GridSplitter avec des contraintes min
Ce code fonctionne très bien:
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*" MinHeight="80" />
<RowDefinition Height="5" />
<RowDefinition Height="*" MinHeight="80" />
</Grid.RowDefinitions>
<TextBlock Grid.Row="0" Text="{Binding Path=ActualHeight, RelativeSource={RelativeSource Self}}" />
<GridSplitter Grid.Row="1" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Background="Red" />
<TextBlock Grid.Row="2" Text="{Binding Path=ActualHeight, RelativeSource={RelativeSource Self}}" />
</Grid>
Mais je veux la rangée supérieure d'avoir une hauteur automatique jusqu'à ce que l'utilisateur modifie manuellement en utilisant le séparateur. Donc, j'ai changé le code à ceci:
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" MinHeight="80" />
<RowDefinition Height="5" />
<RowDefinition Height="*" MinHeight="80" />
</Grid.RowDefinitions>
<TextBlock Grid.Row="0" Text="{Binding Path=ActualHeight, RelativeSource={RelativeSource Self}}" />
<GridSplitter Grid.Row="1" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Background="Red" />
<TextBlock Grid.Row="2" Text="{Binding Path=ActualHeight, RelativeSource={RelativeSource Self}}" />
</Grid>
Et il y a un problème. Splitter satisfait toujours les contraintes de ligne, mais il commence à augmenter infiniment la hauteur de la rangée supérieure si je fais glisser le splitter trop bas. Il en résulte que la ligne du bas est complètement en dessous de la bordure inférieure de la fenêtre.
J'ai fait un peu de réflecteur sur le code GridSplitter et je vois qu'il utilise une logique différente si les lignes ont une hauteur Auto ou Star.
Des suggestions comment puis-je "réparer"?
Merci, mais je veux enregistrer une logique automatique – Seldon
Cela a fonctionné avec brio pour moi, maintenant le dimensionnement fonctionne parfaitement. – Contango