WP7 실버라이트 앱에서 가로/세로 방향의 전환을 지원하려면, 대부분의 경우 SupportedOrientations 프로퍼티의 값을 PortraitOrLandscape로 지정해주는 것 만으로 방향 변경 이벤트를 올바로 처리할 수 있다. 하지만 간혹 가로/세로 방향에 따라서 페이지의 레이아웃 변경을 커스터마이징해야 하는 경우(하드웨어 키보드를 사용한다거나, 가상 키보드의 위치를 고려하여 요소를 효율적으로 배치해야 한다거나)도 있을 수 있다. 이런 경우 방향 전환이 일어날 때 필요한 코드를 직접 추가해야 한다.
PhoneApplicationFrame, PhoneApplicationPage 클래스는 모두 OrientationChanged 이벤트를 갖고 있는데, 특히 PhoneApplicationPage는 기본적으로 오버라이드할 수 있는 OnOrientationChanged 메서드를 갖고 있다. 이는 이벤트 핸들링 없이 해당 페이지의 코드 비하인드 파일에 직접 OnOrientationChanged 메서드를 작성하면 된다는 의미이다. OnOrientationChanged 메서드는 다음과 같은 코드로 구성된다:
protected override void OnOrientationChanged(OrientationChangedEventArgs args) { ... base.OnOrientationChanged(args); }
이 메서드 안에서 페이지 객체의 Orientation 프로퍼티(PageOrientation 열거형 타입이다)를 사용해 현재 디바이스의 방향이 어떻게 되어 있는지를 판별하면 된다.
만약 가로/세로 방향이 전환될 때 적용되는 코드가 개별 페이지에 적용되는 것이 아니라 프로그램 전체 수준에서 적용되는 내용이라면, App 클래스의 생성자에서 RootFrame의 OrientationChanged 이벤트를 핸들링하도록 하자.
'TechLog' 카테고리의 다른 글
한글판 Visual Studio 2010에서 Windows Phone 7 프로젝트 템플릿이 등록되지 않을 경우 (1) | 2011.04.16 |
---|---|
부트캠프로 설치한 Windows 7에서 윈도 업데이트 후 블루 스크린 해결 (18) | 2011.04.14 |
Tombstoning이라는 단어의 유래 (0) | 2011.04.08 |
실제 WP7 디바이스의 기능을 WP7 에뮬레이터에서 테스트할 때의 팁. (0) | 2011.04.06 |
부트캠프 설치시 파티션 관련 경고 메시지 해결하기 (0) | 2011.04.03 |