在样式内部使用转换器是否可行?例如,我正在尝试创建一个经过样式设置的TextBlock
,其文本根据TextBlock
的ActualHeight
属性进行调整大小。这种调整大小将通过一个转换器完成。
在样式内部使用转换器是否可行?例如,我正在尝试创建一个经过样式设置的TextBlock
,其文本根据TextBlock
的ActualHeight
属性进行调整大小。这种调整大小将通过一个转换器完成。
是的,这是可能的。例如:
<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>
我成功地使用以下方法实现了类似的功能:
<Setter Property="Text">
<Setter.Value>
<Binding Path="CompanyName">
<Binding.Converter>
<conv:UppercaseConverter/>
</Binding.Converter>
</Binding>
</Setter.Value>
</Setter>
希望这对你也有效。
Yann
附言 - CompanyName 是我绑定到文本块的实际 ViewModel 属性的名称。