Changer la Visibilité dans un StackPanel

J'ai un WPF StackPanel qui ressemble à ceci:
(certains attributs supprimés qui n'a pas d'importance)

<StackPanel HorizontalAlignment="Center" Name="PICStack">
        <Label Name="PICName"  MouseDoubleClick="PICName_MouseDoubleClick" />
        <TextBox Name="PICData" Width="120" Visibility="Hidden" />
        <Label Name="PICWeight" />
        <Label Name="PICARM"    />
</StackPanel>

Remarque que la zone de texte commence comme "Caché".

Quand je double-clique sur le haut de l'étiquette, je échanger de la visibilité:

private void PICName_MouseDoubleClick(object sender, MouseButtonEventArgs e)
{
    this.PICData.Visibility = Visibility.Visible;
    this.PICName.Visibility = Visibility.Hidden;
}

Le but est de masquer l'étiquette, et la zone de texte apparaît à sa place.

Cependant, parce que c'est un StackPanel, la zone de texte prend de l'espace vertical, même quand il n'est pas visible. Puis, lorsque la zone de texte est révélé, il a de l'espace vide au-dessus d'elle, où l'Étiquette a été précédemment visible.

Est-il un bon moyen de faire les deux éléments essentiellement être directement au-dessus des autres? de sorte qu'en double-cliquant sur l'Étiquette s'affiche à un changement soudain dans une zone de texte?

OriginalL'auteur abelenky | 2011-03-07