2013-03-11 68 views
2

这应该很简单:我如何在DockPanel中拉伸StackPanel,以便填充整个父级的内容并保持其Horizo​​ntalAlignment?在DockPanel中填充StackPanel

实施例:

<DockPanel LastChildFill="True"> 
    <StackPanel Orientation="Horizontal" HorizontalAlignment="Center" Background="Yellow"> 
     <Button Height="30">Button1</Button> 
     <Button Height="30">Button2</Button> 
    </StackPanel> 
</DockPanel> 

在这个例子中的StackPanel的宽度是相同的,从两个按钮的组合宽度(和这里的背景是黄色),但在DockPanel中的剩余空间保持白色。看起来LastChildFille属性在我的示例中不起作用。

回答

2

我认为通过在StackPanel上设置HorizontalAligmentCenter,您重写了DockPanel的行为来使用StackPanel填充整个空间。

当我明白你的问题的权利,你想要的全部空间是黄色的和按钮的堆叠面板居中在中间。然后你应该将StackPanel包装在一个Grid中。

<DockPanel LastChildFill="True"> 
    <Grid Background="Yellow"> 
    <StackPanel Orientation="Horizontal" HorizontalAlignment="Center"> 
     <Button Height="30">Button1</Button> 
     <Button Height="30">Button2</Button> 
    </StackPanel> 
    </Grid> 
</DockPanel> 
+0

绝对正确。另一种选择是在按钮上设置“Horizo​​ntalAlignment”,不过它们不一定是相同的宽度,这可能是不合需要的。 – 2013-03-11 08:37:53

+0

在这种情况下,我可以将背景属性设置为DockPanel。我的意图是为StackPanel创建背景风格,但这也应该工作... – sventevit 2013-03-11 09:04:03