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

问题描述:

我有一个垂直StackPanel两个Grid元素的表单。我想象底部Grid将自动填满所有可用的空间,因为我希望它,但我已经在Grid行设置的高度:如何制作WPF布局网格填充所有可用的垂直空间?

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

在顶部和底部的短行是标签和按钮, 分别。我试图设置网格的VerticallAllignmentStretch,无济于事。

如何将底部网格的底部固定到窗体的底部,而不管窗体的高度如何?

+2

垂直的StackPanel从不垂直调整大小的孩子。改为使用具有两行的外部网格或DockPanel。 – Clemens

实际上,您不能使用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> 
+0

'LastChildFill =“True”是默认值,所以不需要明确设置它。 – Clemens