【问题标题】:LastChildFill in DockPanel not working for heightDockPanel 中的 LastChildFill 不适用于高度
【发布时间】:2013-11-10 17:08:43
【问题描述】:

在用户控件中我有:

<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",我预计最后一个标签会填满停靠面板/网格中的可用垂直空间。然而,它的高度是 10 的默认“自动”,它不会填充。
最后一个标签没有响应 DockPanel.Dock,我认为这是可以的,并且是 LastChildFill="True" 的结果。

我该怎么做才能让高度填满剩余的高度?

【问题讨论】:

    标签: wpf xaml layout dockpanel


    【解决方案1】:

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

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

    【讨论】:

    • 事实上,当我将 VerticalAlignment="Stretch" 添加到 DockPanel 时它不起作用,但是当我将它添加到最后一个标签时它会起作用。我认为我也尝试过,但显然没有。
    猜你喜欢
    • 2012-07-23
    • 2014-08-30
    • 1970-01-01
    • 2018-01-03
    • 2010-09-15
    • 1970-01-01
    • 2016-04-15
    • 2016-09-11
    • 2013-11-25
    相关资源
    最近更新 更多