2014-04-24 4 views
0

Windows 8.0 코드가 있고 Portrait, Landscape, filled and Snapped와 같은 ViewStates UI를 처리했습니다. 그러나 Windows 8.1에서는 뷰어가 앱을 어떤 크기로도 이동할 수 있습니다. 이 경우 UI를 어떻게 처리해야합니까? 현재 나는 이것을 이렇게하고있다. 이 윈도우의 크기와 화면 비율에 의존하게 - 대신 ApplicationViewState에 레이아웃을 내놓고의Windows 8.1 저장소 응용 프로그램에서 다양한보기 상태를 처리하는 방법

private void QuestionPage_SizeChanged(object sender, SizeChangedEventArgs e) 
    { 
     ApplicationViewState currentState = Windows.UI.ViewManagement.ApplicationView.Value; 

     if (currentState.Equals(ApplicationViewState.Snapped)) 
     { 
      VisualStateManager.GoToState(this, "Snapped", false); 
     } 
     else if (currentState.Equals(ApplicationViewState.FullScreenLandscape)) 
     { 
      VisualStateManager.GoToState(this, "FullScreenLandscape", false); 
     } 
     else if (currentState.Equals(ApplicationViewState.Filled)) 
     { 
      VisualStateManager.GoToState(this, "Filled", false); 
     } 
     else if (currentState.Equals(ApplicationViewState.FullScreenPortrait)) 
     { 
      VisualStateManager.GoToState(this, "FullScreenPortrait", false); 
     } 
    }  

답변

1

먼저 크기를 분류하는 방법을 결정해야합니다. 우리는 다음과 함께하기로 결정했습니다 :

기본값 - 가로 전 화면. enter image description here

세로 - 세로 전체 화면. 작은 enter image description here

가 - 683 폭, 세로 방향 enter image description here

중간 - - 500로 조정/스냅, 위의 684 폭으로 크기가 조정/수직 방향을 찍은 enter image description here

그러니까 기본적으로, 작고 중간 크기는 세로 레이아웃으로 높이가 너비보다 큽니다. 보통 너비가 높이보다 커지면 기본 가로 크기가됩니다.

우리는 SizeChangedEventArgs에 대해 ApplicationViewState 대신에 DisplayOrientations CurrentOrientation = Windows.Graphics.Display.DisplayInformation.GetForCurrentView().CurrentOrientation;을 사용합니다. 다음과 같이

그리고 크기를 정의

//Small Size 
if (e.NewSize.Width <= 683 
    && (CurrentOrientation == DisplayOrientations.Landscape || CurrentOrientation == DisplayOrientations.LandscapeFlipped || CurrentOrientation == DisplayOrientations.None)) 

그런 다음 재생하고 이제까지 당신이 원하는 크기를 정의 할 수 있습니다.

0

. 사용자가 앱을 사용하는 방법과 이러한 경우 가장 적합한 레이아웃이 무엇인지 생각해보십시오. 하나의 레이아웃이 좋을 수도 있고 창 너비가 일부 값보다 작은 경우 GridView 레이아웃을 ListView으로 전환 할 수도 있습니다. 500px. 이 경우 가장 편안하게 사용하는 방법을 생각하십시오. 적어도 앱의 크기를 조정할 때 레이아웃이 떨어져 나가지 않는지 테스트합니다.

관련 문제