DockPanel中的LastChildFill不适用于高度

时间:2013-10-30 21:13:31

标签: wpf xaml layout dockpanel

在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"的结果。

如何让高度填充剩余高度?

1 个答案:

答案 0 :(得分:5)

最后一个标签填充以适合DockPanel中的剩余空间;但问题是你的DockPanel目前只占用其子节点所需的空间。

如果主网格有空间可供使用,在DockPanel中设置VerticalAlignment="Stretch"将拉伸DockPanel以占用它可以占用的所有垂直空间,最后一个标签将依次执行此操作。