假设我有一个简单的布局,例如:
<StackPanel>
<TextBlock Text="{Binding Path=Title}" />
<TextBlock Text="{Binding Path=ShortDescription}" />
<TextBlock Text="{Binding Path=LongDescription}" />
</StackPanel>
现在,当我将ShortDescription设置为null或空字符串时,仍然存在第二个TextBlock的间隙。是否有一些属性可以防止空文本块占用空间?或者我应该使用其他控件吗?
感谢。
答案 0 :(得分:19)
您希望将文本框的可见性设置为“折叠”。
可见性可以是:
可见 - 自我解释
隐藏 - 隐形但仍占用空间
倒塌 - 隐形,不占空间
编辑:您应该设置一个触发器,如下所示:
<Trigger Property="Text" Value="{x:Null}">
<Setter Property="Visibility" Value="Collapsed"/>
</Trigger>
答案 1 :(得分: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>
这应该基于空/空绑定来修复空白空间问题。