代码之家  ›  专栏  ›  技术社区  ›  Alan Mendelevich

如何使空文本块不占用空间?

  •  11
  • Alan Mendelevich  · 技术社区  · 17 年前

    假设我有这样一个简单的布局:

    <StackPanel>
      <TextBlock Text="{Binding Path=Title}" />
      <TextBlock Text="{Binding Path=ShortDescription}" />
      <TextBlock Text="{Binding Path=LongDescription}" />
    </StackPanel>
    

    现在,当我将shortdescription设置为空或空字符串时,第二个textBlock仍有一个间隙。是否有一些属性可以防止空的文本块占用空间?还是应该使用其他控件?

    谢谢。

    2 回复  |  直到 14 年前
        1
  •  19
  •   DavidN    17 年前

    要将文本框的可见性设置为“折叠”。

    可视性可以是:
    可见-不言自明
    隐藏-不可见但仍占用空间
    折叠-不可见,不占用空间

    编辑:您可能应该设置一个触发器,如下所示:

    <Trigger Property="Text" Value="{x:Null}">
        <Setter Property="Visibility" Value="Collapsed"/>
    </Trigger>
    
        2
  •  9
  •   Cosmin    14 年前

    您可以尝试以下操作:

    <TextBlock.Style>
        <Style TargetType="{x:Type TextBlock}">
            <Style.Triggers>
                <Trigger Property="Text" Value="">
                    <Setter Property="Visibility" Value="Collapsed"/>
                </Trigger>
            </Style.Triggers>
        </Style>
    </TextBlock.Style>
    

    这将基于空/空绑定修复空空间问题。