11

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

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

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

谢谢。

4

2 回答 2

20

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

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

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

<Trigger Property="Text" Value="{x:Null}">
    <Setter Property="Visibility" Value="Collapsed"/>
</Trigger>
于 2009-02-09T15:13:11.767 回答
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>

这应该可以解决基于 Null / Empty Binding 的空白空间问题。

于 2011-07-29T18:13:41.403 回答