在UserControl中,我有:
<Grid>
<DockPanel Grid.Column="0"
LastChildFill="True">
<Label x:Name="ProductName"
HorizontalAlignment="Stretch"
DockPanel.Dock="Top"
Background="Red"
Height="60" />
<Label x:Name="Versie"
HorizontalAlignment="Stretch"
DockPanel.Dock="Top"
Background="Green"
Height="20" />
<Label x:Name="Copyright"
HorizontalAlignment="Stretch"
DockPanel.Dock="Top"
Background="Blue"
Height="20" />
<Label x:Name="Company"
HorizontalAlignment="Stretch"
DockPanel.Dock="Top"
Background="Yellow"
Height="20" />
<Label x:Name="Omschrijving"
HorizontalAlignment="Stretch"
**--> Answer: add this: VerticalAlignment="Stretch"**
Background="Tomato"/>
</DockPanel>
</Grid>
由于LastChildFill="True"
,我预计最后一个标签会填充dockpanel / grid中的可用垂直空间。然而它的高度是10的默认“自动”,它不会填充
最后一个标签不响应DockPanel.Dock,我认为它是正常的,并且是LastChildFill="True"
的结果。
如何让高度填充剩余高度?
答案 0 :(得分:5)
最后一个标签填充以适合DockPanel中的剩余空间;但问题是你的DockPanel目前只占用其子节点所需的空间。
如果主网格有空间可供使用,在DockPanel中设置VerticalAlignment="Stretch"
将拉伸DockPanel以占用它可以占用的所有垂直空间,最后一个标签将依次执行此操作。