Windows phone 7 改变支点';初始化后的HeaderTemplate

Windows phone 7 改变支点';初始化后的HeaderTemplate,windows-phone-7,Windows Phone 7,当PhoneApplicationPage方向改变以适应不同的屏幕时,我尝试更改Pivot的HeaderTemplate。我试图实现的最终效果是缩小横向中的轴头大小,为更多垂直内容腾出空间 模板在XAML中声明为资源 <phone:PhoneApplicationPage.Resources> <DataTemplate x:Key="landscapePivotTitleTemplate"> <TextBlock Text="" Heigh

当PhoneApplicationPage方向改变以适应不同的屏幕时,我尝试更改Pivot的HeaderTemplate。我试图实现的最终效果是缩小横向中的轴头大小,为更多垂直内容腾出空间

模板在XAML中声明为资源

<phone:PhoneApplicationPage.Resources>
    <DataTemplate x:Key="landscapePivotTitleTemplate">
        <TextBlock Text="" Height="0"/>
    </DataTemplate>
    <DataTemplate x:Key="portraitPivotTitleTemplate">
        <TextBlock Text="{Binding}" />
    </DataTemplate>
    <DataTemplate x:Key="portraitPivotHeaderTemplate">
        <TextBlock Text="{Binding}" />
    </DataTemplate>
    <DataTemplate x:Key="landscapePivotHeaderTemplate">
        <TextBlock  Text="{Binding}" FontSize="{StaticResource PhoneFontSizeSmall}" />
    </DataTemplate>
</phone:PhoneApplicationPage.Resources>

使用上述模板,通过将标题指定给TitleTemplate,可以正确隐藏标题。但是,似乎只能设置一次标题模板,对HeaderTemplate的后续分配只有通过添加新的数据透视项才能生效。有更好的方法吗?

我刚刚在一个全新的基于pivot的解决方案中尝试了您的代码,每次我更改方向时,标题都会相应地隐藏/显示。是的,标题是,但是数据透视项标题的字体大小没有改变——这是一个问题,解决方法之一是添加和删除一个空白数据透视项。只是不太优雅。。
void MainPage_OrientationChanged(object sender, OrientationChangedEventArgs e)
{
    if (e.Orientation == PageOrientation.LandscapeLeft || e.Orientation == PageOrientation.LandscapeRight)
    {
        pivot.HeaderTemplate = (DataTemplate)Resources["landscapePivotHeaderTemplate"];
        pivot.TitleTemplate = (DataTemplate)Resources["landscapePivotTitleTemplate"];
    }
    else 
    {
        pivot.HeaderTemplate = (DataTemplate)Resources["portraitPivotHeaderTemplate"];
        pivot.TitleTemplate = (DataTemplate)Resources["portraitPivotTitleTemplate"];
    }            
}