Desidero un layout Grid con due righe e uno splitter tra di loro. Le file dovrebbero avere un'altezza minima di 80 pixel.GridSplitter con vincoli minimi
Questo codice funziona alla grande:
<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>
Ma voglio riga superiore di avere un'altezza Auto fino all'utente di modificare manualmente utilizzando il divisore. Così ho cambiato il codice a questo:
<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>
E c'è un problema. Lo splitter soddisfa ancora i vincoli di riga, ma inizia ad aumentare l'altezza della riga superiore in modo infinito se trascino lo splitter troppo in basso. Ciò comporta che la riga inferiore sia completamente al di sotto del bordo inferiore della finestra.
Ho fatto qualche riflessione sul codice GridSplitter e vedo che usa una logica diversa se le righe hanno altezza Auto o Stella.
Qualche suggerimento come posso "aggiustarlo"?
Grazie, ma voglio salvare una logica Auto – Seldon
Questo ha funzionato perfettamente per me, ora il dimensionamento funziona perfettamente. – Contango