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
Vous devez vous connecter pour publier un commentaire.
Utilisation
Visibilty.Collapsed
à la place. Il ne réserve pas l'espace commeVisibilty.Hidden
.OriginalL'auteur
Vous devez essayer d'utiliser le
Visibility.Collapsed
au lieu deVisibility.Hidden
.OriginalL'auteur