【问题标题】:Changing Visibility in a StackPanel更改 StackPanel 中的可见性
【发布时间】: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


    【解决方案1】:

    您应该尝试使用Visibility.Collapsed 而不是Visibility.Hidden

    【讨论】:

      【解决方案2】:

      请改用Visibilty.Collapsed。它不像Visibilty.Hidden 那样保留空格。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-06-14
        • 1970-01-01
        • 2012-04-01
        • 2011-12-27
        • 1970-01-01
        • 2023-03-23
        • 1970-01-01
        • 2015-03-14
        相关资源
        最近更新 更多