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