TabItem样式不显示标题信息

时间:2011-06-17 15:36:27

标签: wpf xaml styles

在Blend中制作了一个漂亮的标签,但我的ContentPresenter必须关闭 - 它不会显示TabItem标题文字。

编辑1:实施了CodeNaked的建议,以及Rachel的回答,如果你愿意,你可以按原样使用这种风格。

<Style x:Key="TabItemStyle2" TargetType="{x:Type TabItem}">
    <Setter Property="Template">
        <Setter.Value>
        <ControlTemplate TargetType="{x:Type TabItem}">
                <Grid>
            <Border BorderThickness="3" CornerRadius="5,5,0,0">
                    <Border.BorderBrush>
                <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
                    <GradientStop Color="#7F605F5F" Offset="0"/>
                    <GradientStop Color="#7F7E7E7E" Offset="1"/>
                </LinearGradientBrush>
                </Border.BorderBrush>
                <Border.Background>
                        <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
                    <GradientStop Color="#FF6096E5" Offset="0.004"/>
                            <GradientStop Color="#FF6096E5" Offset="0.823"/>
                    <GradientStop Color="White" Offset="0.228"/>
                    </LinearGradientBrush>
                </Border.Background>
                </Border>
            <Border x:Name="BorderGlass" BorderThickness="3" CornerRadius="5,5,0,0" Background="#7FFDFDFD">
                <Border.BorderBrush>
                <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
                        <GradientStop Color="#7FFFFFFF" Offset="0"/>
                    <GradientStop Color="#BFFFFFFF" Offset="0.401"/>
                    <GradientStop Color="#F2FFFFFF" Offset="0.254"/>
                </LinearGradientBrush>
                </Border.BorderBrush>
            </Border>
            <ContentPresenter HorizontalAlignment="Center" RecognizesAccessKey="True" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="Center" ContentPresenter ContentSource="Header">
                <ContentPresenter.OpacityMask>
                <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
                        <GradientStop Color="#FF6096E5" Offset="0"/>
                    <GradientStop Color="#FF6096E5" Offset="0.823"/>
                    <GradientStop Color="White" Offset="0.228"/>
                </LinearGradientBrush>
                </ContentPresenter.OpacityMask>
                </ContentPresenter>
            </Grid>
        </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

2 个答案:

答案 0 :(得分:2)

尝试将ContentSource="Header"添加到您的ContentPresenter

<ContentPresenter ContentSource="Header" ... >

答案 1 :(得分:1)

你的第一个Style并不是真的有效。您不应该在要设置样式的控件中定义控件。在第一个样式中,您在TabItem的控件模板中包含一个TabItem。你不应该这样做。

Rachel的回答解决了你的第二个Style的问题。