GridSplitter
имеет три различных режима изменения размера, как вы можете видеть ниже:
![Resize Behaviours](https://i.stack.imgur.com/FJgq9.png)
GridSplitter
изменяет размеры указанных двух столбцов / строк в соответствии с выбранным ResizeBehaviour
и в соответствии с доступным для них пространством, в вашем случае вы указали * высоту для строки до и Автоматическую высоту для строки after, что означает, что он может изменить размер только строки до, строка после всегда будет оставаться Auto
:
![enter image description here](https://i.stack.imgur.com/kB8lD.png)
Чтобы устранить эту проблему, необходимо установить строку до и строку после на Width="*"
и установить поведение изменения размера на ResizeBehavior="PreviousAndNext"
, см. Следующий фрагмент кода:
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<GridSplitter Grid.Row="3" ResizeDirection="Rows"
Style="{StaticResource HorizontalGridSplitter}"
IsTabStop="False" HorizontalAlignment="Stretch"
ResizeBehavior="PreviousAndNext" />
</Grid>
Также лучше установить высоту всех других строк на Auto
или фиксированное значение, чтобы избежать каких-либо странных действий:)