Windows 8 如何在Windows 8.1应用商店中处理各种视图状态

Windows 8 如何在Windows 8.1应用商店中处理各种视图状态,windows-8,windows-store-apps,windows-8.1,Windows 8,Windows Store Apps,Windows 8.1,我有windows 8.0代码,我处理过视图状态的UI,如纵向、横向、填充和快照。但在Windows8.1中,用户可以将应用程序移动到任何大小。在这种情况下,如何处理UI。目前我是这样做的 private void QuestionPage_SizeChanged(object sender, SizeChangedEventArgs e) { ApplicationViewState currentState = Windows.UI.ViewManagement.

我有windows 8.0代码,我处理过视图状态的UI,如纵向、横向、填充和快照。但在Windows8.1中,用户可以将应用程序移动到任何大小。在这种情况下,如何处理UI。目前我是这样做的

  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);
        }
    }       

不要将布局基于
ApplicationViewState
,而是根据窗口的大小和纵横比进行设置。想一想用户会如何使用你的应用程序,以及在这些情况下,什么样的布局效果最好。当窗口宽度小于某个值(例如500px)时,可能一个布局就可以了,或者您可能希望将
GridView
布局切换为
ListView
布局。想一想在这些情况下使用什么最舒服。至少-在调整应用程序的大小时,测试布局是否没有崩溃。

首先,你需要决定如何对大小进行分类。我们决定采取以下措施:

默认-横向全屏。

肖像-肖像全屏。

小-捕捉/调整大小为500-683宽,垂直方向

中等-拍摄/调整大小至684宽及以上,垂直方向

所以基本上,中小型是垂直布局,因为高度大于宽度。当中等宽度大于其高度时,它将是默认的横向尺寸

我们使用:
DisplayOrientions CurrentOrientation=Windows.Graphics.Display.DisplayInformation.GetForCurrentView().CurrentOrientationSizeChangedEventArgs
,代码>而不是
ApplicationViewState

然后按如下方式定义尺寸:

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