Quiero un diseño de cuadrícula con dos filas y divisor entre ellas. Las filas deben tener una altura mínima de 80 píxeles.GridSplitter con restricciones mínimas
Este código funciona muy 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>
Pero quiero fila superior para tener una altura automática hasta que el usuario cambie manualmente utilizando el divisor. Así que cambié el código a este:
<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>
Y hay un problema. El divisor aún satisface las restricciones de fila, pero comienza a aumentar la altura de la fila superior infinitamente si arrastro el divisor demasiado bajo. Esto hace que la fila inferior esté completamente debajo del borde inferior de la ventana.
He hecho un Reflector en el código GridSplitter y veo que usa una lógica diferente si las filas tienen altura automática o de estrella.
¿Alguna sugerencia de cómo puedo "arreglarlo"?
Gracias, pero quiero guardar una lógica automática – Seldon
Esto funcionó de maravilla para mí, ahora el tamaño funciona perfectamente. – Contango