2013-10-30 41 views
0

工作在用户控件我有:LastChildFill在DockPanel中不是高度

<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> 

我预期的最后一个标签将填补DockPanel中/电网可用的垂直空间,因为LastChildFill="True"。它的高度是10的默认“自动”,它不填充。
最后一个标签没有响应DockPanel.Dock,我想这是好的,结果为LastChildFill="True"

我能做些什么来使高度填充剩下的高度?

回答

4

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

如果主网格有空间可供使用,在您的DockPanel中设置VerticalAlignment="Stretch"将扩展DockPanel以占用所有垂直空间,最后一个标签将依次完成。

+0

事实上,当我将VerticalAlignment =“Stretch”添加到DockPanel时,它不起作用,但是它在我将它添加到最后一个标签时起作用。我的意见是也尝试过,但显然不是。 – Gerard