Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to Change Size of Pivot Item Header in Template

I'm looking to be able to modify the default Pivot template to change the size of the Pivot Item headers. How might I do this with the following Style

<Style x:Key="PivotStyle" TargetType="phone:Pivot">
        <Setter Property="Margin" Value="0"/>
        <Setter Property="Padding" Value="0"/>
        <Setter Property="Foreground" Value="{StaticResource PhoneForegroundBrush}"/>
        <Setter Property="Background" Value="Transparent"/>
        <Setter Property="ItemsPanel">
            <Setter.Value>
                <ItemsPanelTemplate>
                    <Grid/>
                </ItemsPanelTemplate>
            </Setter.Value>
        </Setter>
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="phone:Pivot">
                    <Grid HorizontalAlignment="{TemplateBinding HorizontalAlignment}"
                            VerticalAlignment="{TemplateBinding VerticalAlignment}">
                        <Grid.RowDefinitions>
                            <RowDefinition Height="Auto"/>
                            <RowDefinition Height="Auto"/>
                            <RowDefinition Height="*"/>
                        </Grid.RowDefinitions>
                        <Grid CacheMode="BitmapCache" Grid.RowSpan="2" >
                            <Grid.Background>
                                <LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
                                    <GradientStop Color="Transparent" Offset="0.0" />
                                    <GradientStop Color="Transparent" Offset="1.0" />
                                </LinearGradientBrush>
                            </Grid.Background>
                        </Grid>
                        <Grid Background="{TemplateBinding Background}" CacheMode="BitmapCache" Grid.Row="2" />
                        <ContentPresenter ContentTemplate="{TemplateBinding TitleTemplate}" Content="{TemplateBinding Title}" Margin="24,17,0,-7" />
                        <Primitives:PivotHeadersControl x:Name="HeadersListElement" Foreground="{StaticResource PhoneForegroundBrush}" FontSize="28" Grid.Row="1"/>
                        <ItemsPresenter x:Name="PivotItemPresenter" Margin="{TemplateBinding Padding}" Grid.Row="2"/>
                    </Grid>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>

I am trying to get this to mimick the following

enter image description here

like image 256
Matthew Avatar asked Apr 11 '14 23:04

Matthew


1 Answers

You can surely change your Pivot Header's font-size, family and so on by changing HeaderTemplate:

<phone:Pivot Title="PivotTest" Style="{StaticResource PivotStyle}">
     <phone:Pivot.HeaderTemplate>
        <DataTemplate>
            <TextBlock Text="{Binding}" FontSize="10"/>
        </DataTemplate>
     </phone:Pivot.HeaderTemplate>
     <phone:PivotItem Header="One">
          // item 1  
     </phone:PivotItem>
     <phone:PivotItem Header="Two">
          // item 2
     </phone:PivotItem>
</phone:Pivot>

EDIT - within a style:

<phone:PhoneApplicationPage.Resources>
    <DataTemplate x:Key="myHeader">
        <TextBlock Text="{Binding}" FontSize="10"/>
    </DataTemplate>

    <Style x:Key="PivotStyle" TargetType="phone:Pivot">
        <Setter Property="HeaderTemplate" Value="{StaticResource myHeader}"/>
        <Setter Property="Margin" Value="0"/>
        ....
like image 83
Romasz Avatar answered Nov 15 '22 02:11

Romasz