ВПФ:Как сделать так, чтобы пустой TextBlock не занимал место?
-
22-08-2019 - |
Вопрос
Допустим, у меня есть простой макет, например этот:
<StackPanel>
<TextBlock Text="{Binding Path=Title}" />
<TextBlock Text="{Binding Path=ShortDescription}" />
<TextBlock Text="{Binding Path=LongDescription}" />
</StackPanel>
Теперь, когда для ShortDescription установлено значение null или пустая строка, вместо второго TextBlock все еще остается пробел.Есть ли какое-то свойство, позволяющее запретить пустому текстовому блоку занимать место?Или мне следует использовать какой-то другой контроль?
Спасибо.
Решение
Вы хотите установить для видимости текстового поля значение «Свернуто».
Видимость может быть:
Видимый – говорит сам за себя
Скрытый — невидим, но все равно занимает место.
Свернутый: невидим и не занимает места.
Редактировать:Вероятно, вам следует настроить триггер, например:
<Trigger Property="Text" Value="{x:Null}">
<Setter Property="Visibility" Value="Collapsed"/>
</Trigger>
Другие советы
Возможно, вы захотите попробовать это:
<TextBlock.Style>
<Style TargetType="{x:Type TextBlock}">
<Style.Triggers>
<Trigger Property="Text" Value="">
<Setter Property="Visibility" Value="Collapsed"/>
</Trigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
Это должно решить проблему пустого пространства, основанную на нулевой/пустой привязке.