Вложенный элемент управления Pivot - PullRequest
0 голосов
/ 15 марта 2011

Возможно ли иметь вложенный элемент управления Pivot в WP7. Как будто я был сводной страницей 1,2,3 и внутри 1, я хочу, чтобы страница а, б, в. Можно ли управлять им только в MainPage.xaml?

Я хочу, чтобы старый стержень 1,2,3 исчез при нажатии на 1 и вместо этого имел a, b, c в качестве главных заголовков стержня. Возможно ли это?

1 Ответ

1 голос
/ 15 марта 2011

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

...