Wpf 更改StackPanel中的可见性

Wpf 更改StackPanel中的可见性,wpf,visibility,stackpanel,Wpf,Visibility,Stackpanel,我有一个WPF StackPanel,如下所示: (删除了一些无关紧要的属性) 其目的是隐藏标签,并使文本框显示在其位置 但是,由于它是一个StackPanel,文本框占据了垂直空间,即使它不可见。然后,当文本框显示时,其上方有空白区域,标签在此之前是可见的 有没有一种好方法可以使这两个项目直接位于彼此之上?因此,双击标签会突然变成一个文本框?您应该尝试使用可见性。折叠的而不是可见性。隐藏的使用可见性。折叠的。它不像visibility.Hidden那样保留空格 <StackPanel H

我有一个WPF StackPanel,如下所示: (删除了一些无关紧要的属性)

其目的是隐藏标签,并使文本框显示在其位置

但是,由于它是一个StackPanel,文本框占据了垂直空间,即使它不可见。然后,当文本框显示时,其上方有空白区域,标签在此之前是可见的


有没有一种好方法可以使这两个项目直接位于彼此之上?因此,双击标签会突然变成一个文本框?

您应该尝试使用
可见性。折叠的
而不是
可见性。隐藏的
使用
可见性。折叠的
。它不像
visibility.Hidden那样保留空格

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