Silverlight WP7-将样式应用于ContentPresenter的内容

Silverlight WP7-将样式应用于ContentPresenter的内容,silverlight,windows-phone-7,Silverlight,Windows Phone 7,我在ItemTemplate中为列表框提供了一个ContentPresenter。我想对它包含的任何文本块应用样式。我尝试了以下方法: <ContentPresenter Content="{Binding Content}" HorizontalAlignment="Stretch" Grid.Row="1" Margin="12,0,0,0"

我在
ItemTemplate
中为
列表框提供了一个
ContentPresenter
。我想对它包含的任何
文本块
应用样式。我尝试了以下方法:

<ContentPresenter Content="{Binding Content}"
                  HorizontalAlignment="Stretch"
                  Grid.Row="1"
                  Margin="12,0,0,0"
                  SizeChanged="OnContentPresenterSizeChanged">
  <ContentPresenter.Resources>
    <Style TargetType="{x:Type TextBlock}"
           BasedOn="{StaticResource PhoneTextExtraLargeStyle}" />
  </ContentPresenter.Resources>
</ContentPresenter>
这没有引起任何异常,但它不起作用。我做错了什么?此外,文本块通常位于
堆栈面板中,这可能是一个问题吗


谢谢你的帮助

我不确定它是否适用于
ContentPresenter
,但要将公共样式应用于所有子元素,您需要在容器中提供一个样式

因此,我建议您将样式放入包含
ContentPresenter
的元素资源中

例子:


您只需使用
TargetType=“TextBlock”
即可。

这不起作用,它仍然不像
x:Type
。此外,将
ContentPresenter.Resources
放在
ContentPresenter
之外也不会编译。我可以通过在创建时在代码隐藏中的
TextBlock
上设置样式来解决这个问题。不过,用XAML来做会很好。正如我在问题中所说的,我试过了,但没有成功。
TargetType="TextBlock" 
<Border>
    <Border.Resources>
        <ContentPresenter.Resources>
            <Style TargetType="{x:Type TextBlock}"
                   BasedOn="{StaticResource PhoneTextExtraLargeStyle}" />
        </ContentPresenter.Resources>
    </Border.Resources>
    <ContentPresenter Content="{Binding Content}"
                      HorizontalAlignment="Stretch"
                      Grid.Row="1"
                      Margin="12,0,0,0"
                      SizeChanged="OnContentPresenterSizeChanged"></ContentPresenter>
</Border>