如何使 WPF 布局网格填充所有可用的垂直 space?
How do I make a WPF layout Grid fill all available vertical space?
我的表单在垂直 StackPanel
中包含两个 Grid
元素。我本以为底部 Grid
会自动填充所有可用的 space,正如我所希望的那样,但我已经在 Grid
行上设置了高度:
<RowDefinition Height="20" />
<RowDefinition Height="*" />
<RowDefinition Height="25" />
顶部和底部的短行分别用于标签和按钮。我尝试将网格的 VerticallAllignment
设置为 Stretch
,但无济于事。
如何将底部网格的底部锚定到表单的底部,而不考虑表单的高度?
基本上你不能使用 StackPanel 来填充所有可用的垂直 space。
但是你可以使用 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>
我的表单在垂直 StackPanel
中包含两个 Grid
元素。我本以为底部 Grid
会自动填充所有可用的 space,正如我所希望的那样,但我已经在 Grid
行上设置了高度:
<RowDefinition Height="20" />
<RowDefinition Height="*" />
<RowDefinition Height="25" />
顶部和底部的短行分别用于标签和按钮。我尝试将网格的 VerticallAllignment
设置为 Stretch
,但无济于事。
如何将底部网格的底部锚定到表单的底部,而不考虑表单的高度?
基本上你不能使用 StackPanel 来填充所有可用的垂直 space。
但是你可以使用 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>