Можно ли использовать конвертер в стиле? - PullRequest
13 голосов
/ 18 декабря 2008

Можно ли использовать конвертер в стиле? Например, я пытаюсь создать стиль TextBlock, размер текста которого изменяется на основе свойства ActualHeight TextBlock. Изменение размера будет выполнено через конвертер.

Ответы [ 2 ]

30 голосов
/ 18 декабря 2008

Да, это возможно. Например:

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

В зависимости от вашего точного сценария, вы также можете использовать более лаконичный:

<Style TargetType="TextBlock">
    <Setter Property="FontSize" Value="{Binding ActualHeight, RelativeSource={RelativeSource Self}, Converter={StaticResource MyConverter}}"/>
</Style>
3 голосов
/ 31 января 2011

Мне удалось получить что-то похожее на работу, используя:

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

Надеюсь, это сработает и у вас.

Yann

PS - CompanyName - имя фактического свойства ViewModel, с которым я связывал текстовый блок

...