Этот сценарий обычно возможен. Тем не менее, я настоятельно рекомендую этого не делать, так как это запутает пользователя и добавит вам больше работы (в соответствии с обработкой навигации между сводками вместо страниц). Допустим, у меня есть образец 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
хоста и добавить его в основную сетку (LayoutRoot
).
Это в конечном итоге поднимает вопрос - действительно ли вы хотите реализовать навигацию таким образом (между опорными точками), когда явно проще и эффективнее перемещаться между отдельными правами PhoneApplicationPage
.