Dans WPF, il est un moyen de faire un StackPanel avec des colonnes alignés comme une Grille?

Par exemple, je pourrais faire quelque chose comme ceci:

<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Width="Auto">
<RowDefinition Width="Auto">
<RowDefinition Width="Auto">
</Grid.RowDefinitions>
<TextBlock Grid.Row="0" Grid.Column="0">Header 1</TextBlock>
<TextBox Grid.Row="0" Grid.Column="1" MaxLines="1" />
<Button Grid.Row="0" Grid.Column="2">Send</Button>
<Button Grid.Row="0" Grid.Column="3">Save</Button>
<TextBlock Grid.Row="1" Grid.Column="0">Header 2</TextBlock>
<TextBox Grid.Row="1" Grid.Column="1" MaxLines="1" />
<Button Grid.Row="1" Grid.Column="2">Send</Button>
<Button Grid.Row="1" Grid.Column="3">Save</Button>
<TextBlock Grid.Row="2" Grid.Column="0">Header 3</TextBlock>
<TextBox Grid.Row="2" Grid.Column="1" MaxLines="1" />
<Button Grid.Row="2" Grid.Column="2">Send</Button>
<Button Grid.Row="2" Grid.Column="3">Save</Button>
</Grid>

Ou je pourrais faire quelque chose comme ceci:

<StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock>Header 1</TextBlock>
<TextBox MaxLines="1" />
<Button>Send</Button>
<Button>Save</Button>
</StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock>Header 2</TextBlock>
<TextBox MaxLines="1" />
<Button>Send</Button>
<Button>Save</Button>
</StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock>Header 3</TextBlock>
<TextBox MaxLines="1" />
<Button>Send</Button>
<Button>Save</Button>
</StackPanel>
<StackPanel>

Sauf que je veux être en mesure de manipuler facilement les lignes (ajouter de nouvelles lignes, bouger les lignes, etc...) tout comme dans le StackPanel, tout en gardant les colonnes alignées correctement, tout comme dans la Grille.

OriginalL'auteur Matt | 2012-08-29