我有一个自定义的WPF控件。它有一个嵌套的ContentControl,它绑定到模板的Content属性,因此它可以将任何对象设置为其内容。如果内容是原始字符串,我想将以下样式应用于TextBlock(我知道,如果您将ContentControl的Content属性设置为字符串,则会生成Visual Tree实际呈现带有TextBlock的ContentPresenter时生成的内容)。造型ContentControl
<Style x:Key="Label" TargetType="TextBlock">
<Setter Property="TextWrapping" Value="Wrap" />
<Setter Property="FontSize" Value="14" />
<Setter Property="Foreground">
<Setter.Value>
<SolidColorBrush>
<SolidColorBrush.Color>
<Color A="255" R="82" G="105" B="146" />
</SolidColorBrush.Color>
</SolidColorBrush>
</Setter.Value>
</Setter>
</Style>
我还以为要做到这一点是通过嵌套资源的方式(这是我的自定义控件的一部分):
<ContentControl x:Name="SomeText" Margin="10,10,10,0"
Content="{TemplateBinding Content}"
IsTabStop="False" Grid.Column="1">
<ContentControl.Resources>
<Style TargetType="TextBlock" BasedOn="{StaticResource Label}" />
</ContentControl.Resources>
</ContentControl>
所以......上面说(我)如果ContentControl以嵌套的TextBlock结束,我们应该应用Label风格,对吗?...但不是,上面的示例中不应用Label风格。
我怎样才能做到这一点?
谢谢。
您是否尝试过使用Snoop或StyleSnooper来查看实际应用的内容? –