【发布时间】:2011-07-10 15:24:50
【问题描述】:
我有一个如下所示的 WPF 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>
请注意,TextBox 以“隐藏”开头。
当我双击顶部标签时,我会交换可见性:
private void PICName_MouseDoubleClick(object sender, MouseButtonEventArgs e)
{
this.PICData.Visibility = Visibility.Visible;
this.PICName.Visibility = Visibility.Hidden;
}
目的是隐藏标签,让TextBox出现在它的位置。
但是,由于它是 StackPanel,因此 TextBox 占用了垂直空间,即使它不可见。然后,当 TextBox 显示出来时,它上面有一个空白区域,而 Label 之前是可见的。
有没有一种好方法可以让这两个项目基本上直接叠放在一起?这样双击Label就好像突然变成TextBox了?
【问题讨论】:
标签: wpf visibility stackpanel