如果我定义了以下样式:

<UserControl.Resources>
    <Style TargetType="TextBlock" x:Key="ProblemStyle">
        <Setter Property="FontSize" Value="40"/>
        <Setter Property="FontWeight" Value="Bold"/>
    </Style>
</UserControl.Resources>

然后,当我将ContentPresenter数据绑定(bind)到字符串时,在WPF中,我可以使用以下XAML使其根据需要设置文本样式:
<ContentPresenter Content="{Binding Problem}">
    <ContentPresenter.Resources>
        <Style TargetType="TextBlock" BasedOn="{StaticResource ProblemStyle}" />
    </ContentPresenter.Resources>
</ContentPresenter>

但是,在Silverlight中,这不起作用。有两种方法都适用吗?

最佳答案

使用TextElement Attached属性。您将无法设置样式,但是可以使用影响Textblock的大多数属性。

<ContentPresenter x:Name="ContentPresenter"
                              ContentSource="Header"
                              HorizontalAlignment="Left"
                              TextElement.FontFamily="Segoe UI"
                              TextElement.FontSize="12"
                              TextElement.FontWeight="Bold"
                              TextElement.Foreground="White"
                              RecognizesAccessKey="True" />

09-20 15:41