下面是一些 XAML,展示了如何使用GridSplitter
您所描述的 a:
<Grid VerticalAlignment="Stretch">
<Grid.RowDefinitions>
<RowDefinition Height="10" />
<RowDefinition Height="10" />
<RowDefinition Height="10" />
<RowDefinition Height="10" />
<RowDefinition Height="10" />
<RowDefinition Height="10" />
<RowDefinition Height="*" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Rectangle Grid.Row="0" Fill="Red" />
<Rectangle Grid.Row="1" Fill="Orange" />
<Rectangle Grid.Row="2" Fill="Yellow" />
<Rectangle Grid.Row="3" Fill="Green" />
<Rectangle Grid.Row="4" Fill="Blue" />
<Rectangle Grid.Row="5" Fill="LightBlue" />
<ListBox Grid.Row="6" Background="Indigo">
<ListBoxItem>Hello</ListBoxItem>
<ListBoxItem>World</ListBoxItem>
</ListBox>
<GridSplitter Grid.Row="7" Height="5" Background="Gray"
VerticalAlignment="Top" HorizontalAlignment="Stretch" />
<ListBox Grid.Row="7" Background="Violet" Margin="0,5,0,0">
<ListBoxItem>Hello</ListBoxItem>
<ListBoxItem>World</ListBoxItem>
</ListBox>
</Grid>
避免将 GridSplitter 放在它自己的行中。将其放在现有行中,并将其对齐到顶部(或底部,如果在上部单元格中),水平拉伸。请注意我如何将它的高度设置为 5,然后为第二个 ListBox 提供 5 的上边距,以便两个元素都不会隐藏另一个元素的任何部分。
希望有帮助。