Search code examples
c#xamlwindows-phone-7pivotitem

Create customized PivotItem header at runtime using C#


I'm trying to add a PivotItem to a Pivot dynamically at load time. I need some screen estate and the standard pivot item header font was too big for me. Some forum searching has lead to this solution:

<controls:PivotItem>
   <controls:PivotItem.Header>
      <TextBlock FontSize="{StaticResource PhoneFontSizeLarge} Text="MyHeaderText"/>
   </controls:PivotItem.Header>
</controls:PivotItem>

This solution works okay if I defined it within the pivotitem XAML itself, but how I can do this in C# code?


Solution

  • You just need to create a Pivot object and some PivotItems objects and then add those PivotItems to the Pivot. At last add this Pivot to your LayoutRoot which is likely a Grid.

    Something like this,

        void PivotPage2_Loaded(object sender, RoutedEventArgs e)
        {
            var pivot = new Pivot();
            var textBlock = new TextBlock { Text = "header 1", FontSize = 32 };
            var pivotItem1 = new PivotItem { Header = textBlock };
    
            var textBlock2 = new TextBlock { Text = "header 2", FontSize = 32 };
            var pivotItem2 = new PivotItem { Header = textBlock2 };
    
            pivot.Items.Add(pivotItem1);
            pivot.Items.Add(pivotItem2);
    
            this.LayoutRoot.Children.Add(pivot);
        }