2011-03-07 23 views
7

更改能見度我有一個WPF的StackPanel,看起來像這樣: (某些屬性去掉那沒關係)在一個StackPanel

<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> 

注意,文本框開始爲「隱藏」。

當我在頂部標籤上雙擊,我換了可視性:

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

這樣做的目的是隱藏的標籤,讓文本框出現在它的地方。

但是,因爲它是一個StackPanel,TextBox佔用了垂直空間,即使它不可見。然後,當文本框顯示時,它上面有一個空白區域,標籤之前是可見的。

有沒有一種很好的方法可以讓兩個項目直接相互疊加?所以雙擊該標籤似乎會突然變成一個TextBox?

回答

21

改爲使用Visibilty.Collapsed。它不保留像Visibilty.Hidden那樣的空白。

9

您應該嘗試使用Visibility.Collapsed而不是Visibility.Hidden

相關問題