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>