2011-03-15 9 views
0

WP7에서 중첩 된 피벗 컨트롤을 사용할 수 있습니까? 피벗 페이지 1,2,3 과 마찬가지로 1, 나는 페이지 a, b, c를 갖고 싶습니다. MainPage.xaml 내에서만 제어 할 수 있습니까?중첩 된 피벗 컨트롤

1을 클릭하면 이전 피벗 1,2,3이 사라지고 그 대신 기본 피벗 헤더로 a, b, c가 필요합니다. 가능한가?

+0

이것이 가능하다해도 나는 이것이 사랑받는 Metro 경험이되지 않을 것을 강력히 제안합니다. 아마도 다른 UI 디자인을 사용하는 것이 좋습니다. 별도의 페이지 - 사용자를이 사라지는 부모 피벗 설계와 혼동하지 말아야합니다. – Stuart

+0

기본 피벗을 숨길 수 있을지 잘 모르겠지만 개인적으로 중첩 피벗 + 포인트 +에 문제가 없습니다. 당신이 할 수 있기 때문에 그것을하고 싶지 않을 것이고, 당신은 내부 피벗을 이동할 때 변속 피벗에서 멈추는 피벗을 다루어야 만합니다.하지만 대답에서 언급 한 ManipulationStarted를 트래핑함으로써 상당히 쉽게 할 수 있습니다. 나는이 구조로 조금 놀았고 최종 결과는 완벽하게 직관적이며 Metro와 함께 IMO를 느낄 수 있습니다. – DarinH

+0

아, 여기에 관한 기사가 있습니다. http://www.imaginativeuniversal.com/blog/post/2010/12/09/WP7-Tip-disabling-the-Pivot-Control-swipe-gesture.aspx – DarinH

답변

1

이 시나리오가 일반적으로 가능합니다. 그러나 사용자를 혼란스럽게하고 더 많은 작업을 추가 할 것입니다 (페이지 대신 피벗 사이에서 탐색을 처리 할 때마다). 내가 시도 할 것이다 때마다

<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> 

HostPivot 조작을 차단하고 대신 그 안에 다음 피벗 항목으로 이동합니다 (활성 호스트와) 두 번째 Pivot 컨트롤 내부 탐색 : 그래서 내가 샘플 Pivot 제어 할 수 있습니다 가정 해 봅시다 sPivot입니다.

이 경우 어떻게해야합니까?

void sPivot_ManipulationStarted(object sender, ManipulationStartedEventArgs e) 
{ 
    if (MainPivot.Content != null) 
    { 
     MainPivot.Content = null; 
     LayoutRoot.Children.Remove(HostPivot); 
     LayoutRoot.Children.Add(sPivot); 
    } 
} 

당신은 세트에서 보조 Pivot 컨트롤을 제거해야 할 것 :

sPivot.ManipulationStarted += new EventHandler<ManipulationStartedEventArgs>(sPivot_ManipulationStarted);

그래서 당신은 결국 차 하나 호스트 피벗을 대체 할이 작품이있을 것이다 : 조작을 감지 호스트 Pivot에있는 첫 번째 PivotItem 자식 컨트롤 중 하나를 선택하고 주 눈금 (LayoutRoot)에 추가합니다.

이것은 궁극적으로 질문을 제기합니다. 별도의 PhoneApplicationPage 엔티티 사이를 탐색하는 것이 훨씬 쉽고 효율적일 때 실제로 이러한 방식으로 탐색을 구현하고 싶습니다 (피벗 사이).

+0

나는 여전히 메인 피벗 컨트롤을 숨길 수 없다. 어디에서 사용해야합니까? sPivot.ManipulationStarted + = 새 EventHandler (sPivot_ManipulationStarted); GestureListener_Tap 안에 시도했습니다. 운동하지 않았어 : ( –

+0

페이지 생성자의 초기화 섹터에 넣으십시오. –

관련 문제