是否可以在风格中使用转换器?

时间:2008-12-18 19:43:34

标签: c# wpf xaml styles converter

是否可以在样式中使用转换器?例如,我正在尝试创建一个样式化的TextBlock,其文本会根据ActualHeight的{​​{1}}属性调整大小。调整大小将通过转换器完成。

2 个答案:

答案 0 :(得分:30)

是的,这是可能的。例如:

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

答案 1 :(得分:3)

我设法使用以下方法获得类似的工作:

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

希望它也适合你。

PS - CompanyName是我将文本块绑定到

的实际ViewModel属性的名称