Pergunta

É possível usar um conversor dentro de um estilo? Por exemplo, eu estou tentando criar um TextBlock estilo cujo texto redimensiona baseada na propriedade ActualHeight do TextBlock. O redimensionamento seria feito através de um conversor.

Foi útil?

Solução

Sim, isso é possível. Por exemplo:

<Style TargetType="TextBlock">
    <Setter Property="FontSize">
        <Setter.Value>
            <Binding Path="ActualHeight" RelativeSource="{RelativeSource Self}">
                <Binding.Converter>
                    <MyConverter/>
                </Binding.Converter>
            </Binding>
        </Setter.Value>
    </Setter>
</Style>

Dependendo do seu cenário exato, você pode também ser capaz de usar o mais sucinto:

<Style TargetType="TextBlock">
    <Setter Property="FontSize" Value="{Binding ActualHeight, RelativeSource={RelativeSource Self}, Converter={StaticResource MyConverter}}"/>
</Style>

Outras dicas

Eu consegui algo semelhante ao trabalho usando:

<Setter Property="Text">
  <Setter.Value>
    <Binding Path="CompanyName">
      <Binding.Converter>
        <conv:UppercaseConverter/>
      </Binding.Converter>
    </Binding>
  </Setter.Value>
</Setter>

espero que funcione para você também.

Yann

PS - CompanyName é o nome da propriedade ViewModel real eu estava ligando o textblock para

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