2014-11-25 2 views
1

어떤 방법으로도 해결할 수없는 문제가 있습니다. 나는 성공없이 2 일을 이미 보냈다. 그래서 마침내 너희들에게 물어보기로했다.상태 표시 줄의 크기를 결정할 수 없습니다 WP8.1 HD/FHD 장치의 WP8.0 응용 프로그램

내가 원하는 것 : HD 또는 FHD 해상도의 WP 8.1 휴대 전화에서 WP 8.0 앱을 실행할 때 상태 막대의 정확한 크기를 알아야합니다.

왜 내가 필요합니까 : 저는 DrawingSurfaceBackgroundGrid를 사용하여 그래픽을 렌더링합니다. DrawingSurfaceBackgroundGrid는 항상 전체 화면을 렌더링 대상으로 사용합니다. 상태 표시 줄 아래에 드로잉하고 싶지 않으므로 상태 표시 줄 치수를 사용하여 뷰포트를 올바르게 트림합니다. 상태 표시 줄은 논리적 픽셀 일정한 크기를 가지고 :

여기

그것이 WP 8.0 전화에서 작동하는 방법이다 :

는 문제가 무엇입니까 세로 모드에서 가 480 픽셀 X 32px입니다. 가로 모드 그들이있다 72px X 800 픽셀 (15 : 9 가로 세로 비) 또는 72px X 853px (16 : 9 가로 세로 비)

여기

그것이 WP 8.1 장치 작동 방법 : 9 종횡비 : 15 기기에서 동작은 WP 8.0 장치와 동일합니다.

16 : 9 기기에서는 상황이 더욱 복잡해집니다.

세로 모드에서 WP 8.1은 상태 표시 줄에 32px를 사용하지 않습니다. 대신 WP 8.1에서는 상태 막대에 대해 불특정하지 않은 양의 픽셀을 사용하고 화면 하단에 검은 색 막대에 대한 일부 불특정 픽셀을 사용합니다. 이 금액의 합계는 32px입니다.

가로 모드에서 WP 8.1은 상태 표시 줄에 72px를 사용하지 않습니다. 대신 WP 8.1은 화면의 오른쪽/왼쪽 모서리에있는 검은 색 막대에 대해 상태 막대에 대해 지정되지 않은 양의 픽셀과 일부 불특정 픽셀을 사용합니다. 이 액수의 합계는 72px입니다.

위의 검은 색 막대의 크기와 상태 표시 줄의 크기의 관계는 저에게 신비입니다. HD 장치보다 FHD 장치의 관계가 다릅니다.

실마리가 있습니까?

답변

0

Windows Phone WinRT에서 StatusBar 높이를 지정해야합니다.

private void LayoutRoot_Loaded(object sender, RoutedEventArgs e) 
{ 
    var transform = LayoutRoot.TransformToVisual(Window.Current.Content); 
    Point coords = transform.TransformPoint(new Point(0, 0)); 
    double height = coords.Y; 
} 

이 LayoutRoot는 Page 뿌리 내부 주 제어부 (보통 Grid)이다.

+0

내 경우 항상 0을 반환합니다. –

+0

페이지가 전체 화면입니까? 콘텐츠에 StatusBar가 겹쳐져 있습니까? –