ВПФ:Как сделать так, чтобы пустой TextBlock не занимал место?

StackOverflow https://stackoverflow.com/questions/528525

Вопрос

Допустим, у меня есть простой макет, например этот:

<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>

Это должно решить проблему пустого пространства, основанную на нулевой/пустой привязке.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top