如何制作WPF布局网格填充所有可用的垂直空间?

时间:2016-11-11 08:24:14

标签: wpf wpf-controls stackpanel

我在垂直Grid中有一个包含两个StackPanel元素的表单。我会想象底部Grid会自动填充所有可用空间,正如我所希望的那样,但我已在Grid行设置了高度:

<RowDefinition Height="20" />
<RowDefinition Height="*" />
<RowDefinition Height="25" />

顶部和底部的短行分别用于标签和按钮。我尝试将网格VerticallAllignment设置为Stretch,但无济于事。

如何将底部网格的底部锚定到表单的底部,而不管表单的高度如何?

1 个答案:

答案 0 :(得分:1)

基本上,您无法使用StackPanel填充所有可用的垂直空间。

但你可以使用DockPanel:

<DockPanel LastChildFill="True">
    <Grid DockPanel.Dock="Top"/>
    <Grid />
</DockPanel>

您也可以使用网格:

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto"/>
        <RowDefinition Height="*"/>
    </Grid.RowDefinitions>

    <Grid Grid.Row="0"/>
    <Grid Grid.Row="1"/>
</Grid>