Is there a way to respond to Snap in C# in a Metro app? When one of the pages is snapped I need to show another one. My idea is to respond to snap by naviating to another page.
I found
var currentView = ApplicationLayout.GetForCurrentView();
currentView.LayoutChanged += new TypedEventHandler<ApplicationLayout, ApplicationLayoutChangedEventArgs>(currentView_LayoutChanged);
but it looks like it no longer works in Consumer Preview. Is there another way?
In Release Preview you need to react to a different event, again :) It's SizeChanged now, not ViewStateChanged.
Previously, your app would do something like this to handle view state changes:
using Windows.UI.ViewManagement;
// Register for the viewstatechanged event
ApplicationView.GetForCurrentView().ViewStateChanged += ViewStateChanged;
private void ViewStateChanged(ApplicationView sender, ApplicationViewStateChangedEventArgs e)
{
// Obtain view state from event payload
ApplicationViewState myViewState = e.ViewState;
}
Now apps should do this:
using Windows.UI.ViewManagement;
// Register for the window resize event
Window.Current.SizeChanged += WindowSizeChanged;
private void WindowSizeChanged(object sender, Windows.UI.Core.WindowSizeChangedEventArgs e)
{
// Obtain view state by explicitly querying for it
ApplicationViewState myViewState = ApplicationView.Value;
}