0
我正在尝试为TabItem标题编写自己的控件模板,并且已经获得了基本布局,但现在我希望将样式应用于内容例如,处理文本块的大小和字体。WPF:通过ControlTemplate和ContentPresenter.Resources向自定义TabItem标题应用样式的问题
为了测试这个,我在tabitem标题中放了一个椭圆,并试图用Gold刷子通过样式填充该椭圆。但是,它不起作用。椭圆是存在的,并且正在应用控件模板,但椭圆的填充不是Gold。 ContentPresenter.Resources中的样式被忽略(并且Resharper甚至将它变成灰色来证明这一点)。任何想法我做错了什么?谢谢。
下面是代码:
<TabItem>
<TabItem.Template>
<ControlTemplate x:Name="theTabItemControlTemplate" TargetType="{x:Type TabItem}">
<Border BorderBrush="DarkBlue" BorderThickness="10">
<Grid>
<ContentPresenter ContentSource="Header" RecognizesAccessKey="True">
<ContentPresenter.Resources>
<Style TargetType="{x:Type Ellipse}">
<Setter Property="Ellipse.Fill" Value="Gold"/>
</Style>
</ContentPresenter.Resources>
</ContentPresenter>
</Grid>
</Border>
</ControlTemplate>
</TabItem.Template>
<TabItem.Header>
<Ellipse Stroke="Black" StrokeThickness="2" Width="100" Height="30" Grid.Column="0" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"/>
</TabItem.Header>
</TabItem>
谢谢,这很好。你可能对ContentPresenter资源是正确的 - 我确信我看到这个例子在某个地方使用,所以它应该工作,但不要担心。 顺便提一下,ReSharper仍然很困惑,因为风格仍然灰暗。我猜想它没有发生,“ContentPresenter”元素可能会带来任何其他元素,包括椭圆。 – 2011-06-01 13:28:59