把一个应用停靠在窗口一侧,只有 320px 宽,可以在另一侧放置其它的应用。这可以
让窗口同时显示两个应用。Snapping 操作可以在至少 1366px 宽的屏幕上可用。
你可以使用快捷方式 : win + . 来循环切换不能的应用视图状态。
左面停靠 “Bing 新闻”, 右侧停靠 “多米音乐”:
控制视图切换的代码:
在页面的构造函数中添加:
// 在窗口呈现或更改其呈现大小时发生。 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();