是否可以在WP7中使用嵌套的Pivot控件。 就像我是一个支点1,2,3 在1里面,我想要页面a,b,c。 是否可以仅在MainPage.xaml中控制它?
我希望旧的枢轴1,2,3在点击1时消失,而是将a,b,c作为主枢轴标题。有可能吗?
答案 0 :(得分:1)
这种情况通常是可能的。但是,我强烈建议不要这样做,因为它会让用户感到困惑,并会为你增加更多工作(根据枢轴而不是页面之间的处理导航)。所以,假设我有一个示例Pivot
控件:
<controls:Pivot x:Name="HostPivot" Title="MY APPLICATION">
<controls:PivotItem x:Name="MainPivot" Header="first">
<controls:Pivot x:Name="sPivot" Title="Secondary Pivot">
<controls:PivotItem x:Name="sPivotItem" Header="inside1"></controls:PivotItem>
<controls:PivotItem Header="inside2"></controls:PivotItem>
<controls:PivotItem Header="inside3"></controls:PivotItem>
</controls:Pivot>
</controls:PivotItem>
<controls:PivotItem x:Name="SecondaryPivot" Header="second">
</controls:PivotItem>
</controls:Pivot>
每当我尝试在第二个Pivot
控件(使用活动主机)内导航时,HostPivot
将拦截操作并移动到其中的下一个枢轴项而不是sPivot
在这种情况下该怎么办?检测操纵:
sPivot.ManipulationStarted += new EventHandler<ManipulationStartedEventArgs>(sPivot_ManipulationStarted);
因此,您最终将使用辅助替换主机数据块
void sPivot_ManipulationStarted(object sender, ManipulationStartedEventArgs e)
{
if (MainPivot.Content != null)
{
MainPivot.Content = null;
LayoutRoot.Children.Remove(HostPivot);
LayoutRoot.Children.Add(sPivot);
}
}
您必须从主机Pivot
控件中第一个PivotItem
的子控件集中删除辅助Pivot
控件,并将其添加到主网格({{ 1}})。
这最终会引发一个问题 - 当你在单独的LayoutRoot
权利之间导航显然更容易,更有效时,你真的想以这种方式(在枢轴之间)实施导航。