Pergunta

Vamos dizer que eu tenho um layout simples, como este:

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

Agora, quando eu tiver set ShortDescription para nulo ou string vazia ainda há uma lacuna no lugar do segundo TextBlock. Existe alguma propriedade para evitar uma textblock vazio de ocupar espaço? Ou devo usar algum outro controle?

Graças.

Foi útil?

Solução

Você deseja definir a visibilidade da caixa de texto para "Recolhido".

A visibilidade pode ser:
Visível - Evidente
Escondida - invisível, mas ainda ocupa espaço
Desmoronou - invisível e não ocupa espaço

Edit: Você provavelmente deve configurar um gatilho, assim:

<Trigger Property="Text" Value="{x:Null}">
    <Setter Property="Visibility" Value="Collapsed"/>
</Trigger>

Outras dicas

Você pode querer tentar o seguinte:

<TextBlock.Style>
    <Style TargetType="{x:Type TextBlock}">
        <Style.Triggers>
            <Trigger Property="Text" Value="">
                <Setter Property="Visibility" Value="Collapsed"/>
            </Trigger>
        </Style.Triggers>
    </Style>
</TextBlock.Style>

Isso deve resolver o problema de espaço vazio com base em um Null / Esvaziar Binding.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top