WPF: StackPanel с FirstChildFill?

Мне нужен логичный и простой способ создания макета с одним набором элементов управления для заполнения и остальными Я мог бы использовать:

<DockPanel LastChildFill="True">
  <Button Content="3" DockPanel.Dock="Bottom" />
  <Button Content="2" DockPanel.Dock="Bottom" />
  <Button Content="1" />
</DockPanel>

Но это не очень интуитивно понятно. Я мог бы сделать это и так:

<Grid>
  <Grid.RowDefinitions>
    <RowDefinition Height="*" />
    <RowDefinition Height="Auto" />
    <RowDefinition Height="Auto" />
  </Grid.RowDefinitions>
  <Button Content="1" Grid.Row="0" />
  <Button Content="2" Grid.Row="1" />
  <Button Content="3" Grid.Row="2" />
</Grid>

Но также довольно много xaml. На самом деле мне нужно что-то вроде этого:

<StackPanel Fill="None|First|Last">
  <Button Content="1" />
  <Button Content="2" />
  <Button Content="3" />
</StackPanel>

Как этого можно достичь, не меняя элементы, как в DockPanel, и не используя фиксированное количество строк и прикрепленных свойств, как в Grid?

6
задан Andreas Zita 28 February 2011 в 15:52
поделиться