如何以编程方式隐藏/显示数据透视表项目标题

时间:2012-10-01 17:48:48

标签: windows-phone-7 pivot pivotitem

我有一个带有非数据绑定枢轴项的枢轴控件,它们具有不同类型的结构。所有这些都有简单的文本标题。我们如何更改标题的可见性 根据方向变化?我想要实现的是,当手机处于风景中我想要的时候 标题是不可见的,并且枢轴项内的相应内容将使用所有空间。我尝试了很多,最大的问题是带有标题的面板始终采用原始高度。(我试图改变字体大小,可见性等......) 请帮忙。这是我的代码示例

  <controls:Pivot x:Name="pvtMain" >                                          

        <controls:PivotItem x:Name="pvtItemOne" Header="My Header one">   

                    <MyUserControls:UserControlOne/>              

        </controls:PivotItem>

       <controls:PivotItem x:Name="pvtItemTwo" Header="My Header Two">   

                     <MyUserControls:UserControlTwo/>              

        </controls:PivotItem>

         <controls:PivotItem x:Name="pvtItemThree" Header="My Header Three">   

                  <MyUserControls:UserControlThree/>              

        </controls:PivotItem>


   </controls:PivotItem>

<controls:Pivot x:Name="pvtMain" > <controls:PivotItem x:Name="pvtItemOne" Header="My Header one"> <MyUserControls:UserControlOne/> </controls:PivotItem> <controls:PivotItem x:Name="pvtItemTwo" Header="My Header Two"> <MyUserControls:UserControlTwo/> </controls:PivotItem> <controls:PivotItem x:Name="pvtItemThree" Header="My Header Three"> <MyUserControls:UserControlThree/> </controls:PivotItem> </controls:PivotItem>

我使用的是Windows Phone SDK 7.0(出于向后兼容性原因)

2 个答案:

答案 0 :(得分:1)

这可能有用。试一试!!

void MainPage_OrientationChanged(object sender, OrientationChangedEventArgs e)
    {
        if (e.Orientation == PageOrientation.Landscape || e.Orientation == PageOrientation.LandscapeLeft || e.Orientation == PageOrientation.LandscapeRight)
        {
            pvtItemOne.Header = null;
            pvtItemTwo.Header = null;
            pvtItemThree.Header = null;
            pvtMain.Margin = new Thickness(0, -150, 0, 0);
        }
        else
            {
                pvtItemOne.Header = "My Header One";
                pvtItemTwo.Header = "My Header Two";
                pvtItemThree.Header = "My Header Three";
                pvtMain.Margin = new Thickness(0);
            }
    }

顺便说一句,您不需要为7.0设备保持任何向后兼容性。微软早就停止了对这些设备的支持,并且市场因此而关闭。

答案 1 :(得分:0)

您可以执行以下操作:

                    <controls:PivotItem >
                        <controls:PivotItem.Header>
                            <Border x:Name="PivotItemHeader">
                                <TextBlock  Text="Test"  />
                            </Border>
                        </controls:PivotItem.Header>
                        <StackPanel>
                            <TextBlock Text="line1" />
                            <TextBlock Text="line2" />
                        </StackPanel>    
                    </controls:PivotItem>

通过使用标题内的“边框”,您可以从代码中控制其可见性。 喜欢:PivotItemHeader.Visibility = System.Windows.Visibility.Collapsed;

我知道它不漂亮但是有效。