46、Snap

 

 

   

   把一个应用停靠在窗口一侧,只有 320px 宽,可以在另一侧放置其它的应用。这可以

让窗口同时显示两个应用。Snapping 操作可以在至少 1366px 宽的屏幕上可用。

       你可以使用快捷方式 : win + . 来循环切换不能的应用视图状态。

 左面停靠 “Bing 新闻”, 右侧停靠 “多米音乐”:

46、Snap

 

控制视图切换的代码:

在页面的构造函数中添加:

  

// 在窗口呈现或更改其呈现大小时发生。

Window.Current.SizeChanged += OnSizeChanged;

 

public void OnSizeChanged(object sender, Windows.UI.Core.WindowSizeChangedEventArgs args)

{

    // 获取当前应用程序视图的状态。

    switch (Windows.UI.ViewManagement.ApplicationView.Value)

    {

        case Windows.UI.ViewManagement.ApplicationViewState.Filled:



       // 使控件在两个状态间过渡。

        //   control:  要进行状态过渡的控件。

        //   stateName: 要过渡到的状态。

        //   useTransitions:  如果使用 VisualTransition 进行状态过渡,则为 true;否则为 false。

        // 返回结果:  如果控件已成功过渡到新状态,则为 true;否则为 false。

        public static bool GoToState(Control control, string stateName, bool useTransitions);

            VisualStateManager.GoToState(this, "Fill", false);

            break;

        case Windows.UI.ViewManagement.ApplicationViewState.FullScreenLandscape:

            VisualStateManager.GoToState(this, "Full", false);

            break;

        case Windows.UI.ViewManagement.ApplicationViewState.Snapped:

            VisualStateManager.GoToState(this, "Snapped", false);

            break;

        case Windows.UI.ViewManagement.ApplicationViewState.FullScreenPortrait:

            VisualStateManager.GoToState(this, "Portrait", false);

            break;

        default:

            break;

    }



    this.ShowCurrentViewState();

}

 

 //更改当前页面中的控件的显示状态 

 void ShowCurrentViewState()

 {

     this.UpdateUnsnapButtonState();



     ApplicationViewState currentState = Windows.UI.ViewManagement.ApplicationView.Value;



     if (currentState == ApplicationViewState.Snapped)

     {

          //"This app is snapped.";

     }

     else if (currentState == ApplicationViewState.Filled)

     {

          // "This app is in the fill state.";

     }

     else if (currentState == ApplicationViewState.FullScreenLandscape)

     {

          //"This app is full-screen landscape.";

     }

     else if (currentState == ApplicationViewState.FullScreenPortrait)

     {

          // "This app is full-screen portrait.";

     }

 }

 

 

尝试展开当前视图:

 //尝试展开以前已对齐的应用程序。

 // 返回结果: 如果该应用程序已成功展开,则为 true;如果展开尝试失败,则为 false。 

Windows.UI.ViewManagement.ApplicationView.TryUnsnap();

 

你可能感兴趣的:(a)