É possível usar um conversor dentro de um estilo?
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.
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