2011-11-15 1 views
1

Windows Phone 7의 피벗 컨트롤에 문제가 있습니다. 피벗 페이지를 변경하기 위해 표준 스 와이프를 사용하는 것 외에도 개발중인 애플리케이션에서 피벗 컨트롤도 버튼 SelectedIndex를 설정하여 누르십시오.전환 중에 피벗에서 입력을 비활성화 하시겠습니까?

화면 전환 중에 버튼 누름이 등록됩니다. 애니메이션이 안정 될 때까지이 버튼은 잘못된 버튼에 대한 것입니다. (즉, SelectedItem이 화면의 오른쪽에있는 탭을 증가 시키면 왼쪽에있는 버튼이 선택됩니다)

구현되는 응용 프로그램은 퀴즈 응용 프로그램입니다. 앱이이 한 가지 문제와 거의 완전하게 별개이므로 피벗 컨트롤을 대체하기위한 재 작성은 실제로 가능하지 않으며 피벗은 필요한 나머지 기능을 모두 제공합니다.

애니메이션이 진행되는 동안 입력이 전달되는 것을 막을 수있는 방법이 있습니까?

필자는 피벗에서 IsEnabled를 설정하려고 시도했지만 애니메이션으로 인해 모든 유동성이 사라지게됩니다. 단순히 스크롤하는 대신 다음 항목으로 깜박입니다. 아마도 두 작업이 모두 UI 스레드에서 실행되기 때문일 것입니다.

솔루션에 대한 다른 제안 사항이 있습니까?

답변

3

변경의 IsHitTestVisible 속성을 이러한 탭을 방지하기 위해 PivotItem을 변경하는 동안 피벗합니다.

피벗이 UnloadingPivotItem 일 때 false으로 설정 한 다음 LoadedPivotitem 이벤트에서 사용하도록 설정합니다.

1

간단한 테스트 후 애니메이션이 완료된 후에 Pivot.LoadedPivotItem 이벤트가 발생하는 것으로 보입니다. 즉, 애니메이션이 진행되는 동안 부울 필드를 사용하여 버튼 이벤트 핸들러를 표시하지 않을 수 있습니다.

당신이 선택한 인덱스를 설정 한 경우 : LoadedPivotItem 이벤트에 다음

_suppressEvents = true; 
uxPivot.SelectedIndex = index; 

을 :

_suppressEvents = false; 

그리고 버튼 이벤트에 :

private void button_Click(object sender, RoutedEventArgs e) 
{ 
    if (!_suppressEvents) 
    { 
     ... 
    } 
} 
0

조금 원래의 ​​대답에 추가 은 .. 그냥

isLocked = true를 설정하고 버튼에 각 피벗을 잠글 수 있습니다

//unlock 
SettingsPivot.IsLocked = false; 
//navigate 
SettingsPivot.SelectedItem = OtherSettings; 
//lock new pivot 
SettingsPivot.IsLocked = true; 
관련 문제