내 Windows Phone 8 응용 프로그램에 오리엔테이션 변경 애니메이션을 추가하는 가장 쉬운 방법은 무엇입니까? 나는 메시지, 캘린더 등의 네이티브 앱처럼 보이는 것에 관심이 있습니다. 빠르고 간단한 솔루션을 찾고 있었고 작업이 NuGet의 DynamicOrientionChanges 라이브러리 였지만 Windows에서는 프레임 속도가 큰 문제가 있습니다. 전화 8.WP8 오리엔테이션 변경 애니메이션
4
A
답변
5
당신은 Windows.Phone.Toolkit를 사용하고 여기에 전시 한, OrientationChangedEvent을 처리 할 수
난 그냥, 여기 링크 된 문서의 소스 코드 일부를 복사 할 수 있습니다 페이지가 오프라인이되는 경우. 여기에는 애니메이션이 변경 사항과 일치하도록하기 위해 현재 방향이 어느 오리엔테이션에서 왔는지 추적하는 추가 논리가 포함되어 있습니다.
public partial class MainPage : PhoneApplicationPage
{
PageOrientation lastOrientation;
// Constructor
public MainPage()
{
InitializeComponent();
this.OrientationChanged += new EventHandler<OrientationChangedEventArgs>(MainPage_OrientationChanged);
lastOrientation = this.Orientation;
}
void MainPage_OrientationChanged(object sender, OrientationChangedEventArgs e)
{
PageOrientation newOrientation = e.Orientation;
Debug.WriteLine("New orientation: " + newOrientation.ToString());
// Orientations are (clockwise) 'PortraitUp', 'LandscapeRight', 'LandscapeLeft'
RotateTransition transitionElement = new RotateTransition();
switch (newOrientation)
{
case PageOrientation.Landscape:
case PageOrientation.LandscapeRight:
// Come here from PortraitUp (i.e. clockwise) or LandscapeLeft?
if (lastOrientation == PageOrientation.PortraitUp)
transitionElement.Mode = RotateTransitionMode.In90Counterclockwise;
else
transitionElement.Mode = RotateTransitionMode.In180Clockwise;
break;
case PageOrientation.LandscapeLeft:
// Come here from LandscapeRight or PortraitUp?
if (lastOrientation == PageOrientation.LandscapeRight)
transitionElement.Mode = RotateTransitionMode.In180Counterclockwise;
else
transitionElement.Mode = RotateTransitionMode.In90Clockwise;
break;
case PageOrientation.Portrait:
case PageOrientation.PortraitUp:
// Come here from LandscapeLeft or LandscapeRight?
if (lastOrientation == PageOrientation.LandscapeLeft)
transitionElement.Mode = RotateTransitionMode.In90Counterclockwise;
else
transitionElement.Mode = RotateTransitionMode.In90Clockwise;
break;
default:
break;
}
// Execute the transition
PhoneApplicationPage phoneApplicationPage = (PhoneApplicationPage)(((PhoneApplicationFrame)Application.Current.RootVisual)).Content;
ITransition transition = transitionElement.GetTransition(phoneApplicationPage);
transition.Completed += delegate
{
transition.Stop();
};
transition.Begin();
lastOrientation = newOrientation;
}
}
관련 문제
- 1. 오리엔테이션 변경
- 2. GLKViewController 오리엔테이션 애니메이션
- 3. 애니메이션 레이어 오리엔테이션
- 4. 안드로이드 오리엔테이션 변경
- 5. iPad - 오리엔테이션 변경 및보기?
- 6. 오리엔테이션 변경 - 업데이트 UI
- 7. Android Volley - 오리엔테이션 변경
- 8. Android에서 오리엔테이션 변경 알림
- 9. iPhone 오리엔테이션 변경 프레임
- 10. iOS 5.0에서 오리엔테이션 변경
- 11. 오리엔테이션 변경 후보기 복원
- 12. Android 에뮬레이터 : 오리엔테이션 변경
- 13. 안드로이드에서의 핸드 오리엔테이션 변경
- 14. Android 오리엔테이션 변경 충돌
- 15. 조각 및 오리엔테이션 변경
- 16. 오리엔테이션 변경 후 가공물
- 17. 지원되는 오리엔테이션 변경
- 18. 오리엔테이션 변경 스레드
- 19. 아이폰 오리엔테이션 변경
- 20. 비트 맵 오리엔테이션 변경
- 21. UIPopover : 오리엔테이션 변경 처리
- 22. SVG 모바일 오리엔테이션 변경
- 23. 오리엔테이션 변경 및 screen.width
- 24. 오리엔테이션 변경 문제
- 25. 그룹 박스 헤더 오리엔테이션 변경
- 26. 오리엔테이션 변경 : 리소스에서 레이아웃 다시로드
- 27. 오리엔테이션 변경 후 콜백이 null이됩니다.
- 28. 활동을 다시 시작합니다. 오리엔테이션 변경
- 29. iOS : 일부 팝업보기에서만 오리엔테이션 변경
- 30. Windows Phone 8에서 오리엔테이션 변경