在DockPanel内填充StackPanel

时间:2013-03-11 08:14:35

标签: c# wpf stackpanel dockpanel

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

示例:

<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属性在我的示例中不起作用。

1 个答案:

答案 0 :(得分: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>