2011-07-05 6 views
1

파노라마 제어 기능이있는 Windows Phone 앱이 있습니다.WP7 응용 프로그램 막대를 숨길 때 지연 WP7 파노라마 컨트롤

파노라마에는 현재 두 페이지가 있습니다.

한 페이지에는 단추가있는 응용 프로그램 표시 줄이 있어야하고 다른 페이지에는 표시해서는 안됩니다.

파노라마의 SelectionChanged 이벤트를 사용하여 ApplicationBar의 IsVisible 속성을 변경합니다.

private void Panorama_SelectionChanged(object sender, System.Windows.Controls.SelectionChangedEventArgs e) 
     { 
      ApplicationBar.IsVisible = Panorama.SelectedIndex == 0; 
     } 

원하는대로 내가 얻는 기능이지만, 같은 행동, 내 파노라마의 끔찍한 지체 (슬라이딩 애니메이션의 순간 동결)을 얻는다. 이것은 아마도 UI 스레드가 바로 Windows phone "기본"응용 프로그램 표시 줄을 조작해야하기 때문에 발생합니다.

이 문제를 방지하는 가장 좋은 방법은 무엇입니까?

ApplicationBar.IsVisible = Panorama.SelectedIndex == 0;을 별도의 스레드로 호출해야합니까? 또는 항목의 ManipulationStarted 및 ManipulationCompleted 이벤트를 사용하여 앱 표시 줄을 숨겨야합니까?

감사합니다.

답변

0

파노라마 컨트롤과 동일한 페이지에서 응용 프로그램 막대를 사용하지 않도록 응용 프로그램을 설계해야합니다.

두 개는 함께 사용하도록 설계되지 않았습니다. 이는 설계상의 기술적 이유 때문입니다. (설계상의 이유로 사용되어서는 안되기 때문에, 둘 다 사용할 때 기술적 문제가 있습니다.이 두 가지 문제는 해결하기가 쉽지 않습니다.) 그런 문제가 하나 있습니다.

사용자가 상호 작용해야하는 파노라마 항목에 콘텐츠가있는 경우 컨트롤을 항목이나 별도의 페이지 (해당 콘텐츠를 선택하여 링크 된 경우)로 이동합니다. 사람이 지적하기 전에

업데이트
- 현재 망고 빌드의 허브 (사무실 & 명) 중 일부는 파노라마와 응용 프로그램 모음을 결합한다. Micorsoft에서 공식적인 의견이 없습니다. (방금 물었습니다.) 망고에 대한 디자인 지침은 아직 공개되지 않았습니다. 그들이 될 때까지는 더 이상 정보가 될 것 같지 않습니다.
망고 베타 SDK가 포함 된 파노라마 템플릿에는 응용 프로그램 모음과 파노라마를 결합해서는 안된다는 내용의 주석이 포함되어 있습니다.

+0

감사합니다. AplicationBar 사용법에 대한 파노라마 프로젝트 템플릿에서 경고를 보았습니다. 그러나 시장에서 Pocket 레코더 응용 프로그램은 Panorama의 OnSelectionChanged 이벤트 처리 문제가없는 동일한 기능을 제공한다는 것을 알 수 있습니다. 내 생각 엔 그들은 다른 트리거링 메커니즘을 사용하여 appbar를 숨기고 표시하는 것입니다. –

0

끝날 때 Deployment.Current.Dispatcher.BeginInvoke()를 사용하여 UI 스레드에 효과를 적용해야하므로 별도의 스레드에서이 코드를 실행하면 도움이되지 않습니다. 그렇지 않으면 크로스 스레드 예외).

하지만이 지연 문제에 대해서는 지연 시간이 200 밀리 초가 된 후에 가시성을 변경해보십시오. Thay가 도움이 될 수 있습니다.

1

응용 프로그램 막대 자체를 숨기는 대신 응용 프로그램 막대 아이콘을 제거/추가하여 부드러운 애니메이션을 얻을 수있었습니다.

+0

어떻게 했습니까? 그냥 단추 모음을 지우거나 ApplicationBar의 상태를 저장 한 다음 동일한 단추를 다시 표시 할 수 있었습니까? –

0

여기에 귀하의 사례에 대한 조언이 있습니다. Panorama Control Design Guidelines for Windows Phone 파노라마에 응용 프로그램 모음을 사용하는 경우 모드를 최소화로 설정하십시오. 이 모드는 파노라마 페이지에서 화면 공간을 최대화하도록 특별히 설계되었습니다.

1

기본값 (1.0) 대신 앱 표시 줄의 불투명도를 0.999999으로 설정하십시오. 작동해야합니다.

1

다른 사람이이 문제에 부딪 힐 경우를 대비하여 datou.guo가 맞습니다. 불투명도에 대한 자세한 내용은 여기에서 설명합니다. AppBar Documentation

앱 표시 줄 불투명도에 0, 0.5 또는 1을 사용할 것을 권장합니다. 불투명도가 1 일 때, 앱 막대가 변경되면 페이지가 실제로 크기가 조정되어 지연을 설명합니다. 불투명도가 .5이면 그럴 수 없습니다. 다른 불투명도 값은 특별히 언급하지 않았지만 0.99로 시도 했으므로 지연이 발생하지 않았습니다.

응용 프로그램 표시 줄이 투명 할 때 페이지에서 더 이상 공간을 차지하지 않으므로 페이지 하단에 약간의 여백을 갖도록 레이아웃을 업데이트해야 할 것입니다.