我有一个基础风格
<Style x:Key="BaseFontControl" TargetType="{x:Type Control}">
<Setter Property="FontSize" Value="13"/>
</Style>
和TextBlock Style,我不能将上面的Style用作基本样式。它说Target type TextBlock is not convertable to base type Control
。我该如何解决这个问题?
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="../XAMLStyles/BaseFontControl.xaml"></ResourceDictionary>
</ResourceDictionary.MergedDictionaries>
<Style x:Key="TextStyle" BasedOn="{StaticResource FontControl}" TargetType="{x:Type TextBlock}">
<Setter Property="TextWrapping" Value="Wrap"/>
<Setter Property="FontFamily" Value="DroidSans"/>
<Setter Property="Foreground" Value="#000000" />
</Style>
答案 0 :(得分:2)
TextBlock
不是来自Control
,因此定位TextBlock
的样式不能基于定位Control
的样式。
您可以将基本样式更改为定位FrameworlElement
:
<Style x:Key="BaseFontControl" TargetType="FrameworkElement">
<Setter Property="TextBlock.FontSize" Value="13"/>
</Style>
此方法利用了TextBlock.FontSize
和Control.TextBlock
属性使用相同依赖项属性的事实。因此,它还设置了从FontSize
派生的元素的Control
属性。