ContentPresenter
ItemTemplate
内有ListBox
TextBlock
。我想将样式应用于它包含的任何<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>
。我尝试了以下方法:
XamlParseException
但我得Unknown attribute TargetType on element Style
说x:Type
。 Intellisense不喜欢TargetType
,它在TargetType="TextBlock"
的自动完成值中显示的唯一内容是控件本身的名称。所以我也试过了
StackPanel
这没有引起任何例外,但它不起作用。我究竟做错了什么?此外,TextBlocks通常在{{1}}范围内,这可能是个问题吗?
感谢您的帮助!
答案 0 :(得分:1)
我不确定它是否适用于ContentPresenter
,但是要将共同样式应用于所有子元素,您可以在容器中提供样式。
所以我建议你把样式放在包含ContentPresenter
的元素资源中。
<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>
答案 1 :(得分:-3)
您只需使用TargetType="TextBlock"
代替。