WPF:如何使空TextBlock不占用空间?

Ala*_*ich 11 wpf layout visibility textblock

假设我有一个简单的布局,例如:

<StackPanel>
  <TextBlock Text="{Binding Path=Title}" />
  <TextBlock Text="{Binding Path=ShortDescription}" />
  <TextBlock Text="{Binding Path=LongDescription}" />
</StackPanel>
Run Code Online (Sandbox Code Playgroud)

现在,当我将ShortDescription设置为null或清空字符串时,仍然存在第二个TextBlock的间隙.是否有一些属性可以防止空文本块占用空间?或者我应该使用其他控制?

谢谢.

Dav*_*idN 19

您希望将文本框的可见性设置为"折叠".

可见性可以是:
可见 - 自我解释
隐藏 - 隐形但仍占用空间
折叠 - 隐形,不占空间

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

<Trigger Property="Text" Value="{x:Null}">
    <Setter Property="Visibility" Value="Collapsed"/>
</Trigger>
Run Code Online (Sandbox Code Playgroud)


小智 9

你可能想试试这个:

<TextBlock.Style>
    <Style TargetType="{x:Type TextBlock}">
        <Style.Triggers>
            <Trigger Property="Text" Value="">
                <Setter Property="Visibility" Value="Collapsed"/>
            </Trigger>
        </Style.Triggers>
    </Style>
</TextBlock.Style>
Run Code Online (Sandbox Code Playgroud)

这应该基于空/空绑定来修复空白空间问题.