Snapped View und weitere Application View States mit C# behandeln

Im Beitrag „[post id=4959]Snap View mit XAML in Windows Store App definieren[/post]“ habe ich gezeigt, wie man mit dem VisualStateManager auf verschiedene Visual Statues in XAML reagieren kann. Das gleiche Verhalten kann man natürlich auch mit reinem C#-Code erzeugen. Hier ein einfaches Beispiel, welches ein XAML-Element im Snapped-View ausblendet und andernfalls wieder anzeigt:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public MainPage()
{
  this.InitializeComponent();
  Window.Current.SizeChanged += onSizeChanged;
}
 
private void onSizeChanged(object sender, Windows.UI.Core.WindowSizeChangedEventArgs e)
{
  ApplicationViewState viewState = Windows.UI.ViewManagement.ApplicationView.Value;
  if (viewState == ApplicationViewState.Snapped)
  {
    MyElement.Visibility = Visibility.Collapsed;
  }
  else
  {
    MyElement.Visibility = Visibility.Visible;
  }
}

Für Windows Store-Apps gibt es folgende View States: FullScreenLandscape, FullScreenPortrait, Filled und Snapped.

Snap View mit XAML in Windows Store App definieren

Eine Snap View lässt sich in einer Windows Store app mit dem VisualStateManager sehr einfach realisieren. Damit der VisualStateManager genutzt werden kann, muss die Seite vom Typ LayoutAwarePage sein.

Wer ein neues Element zu seinem Projekt (seiner Solution) hinzufügt, der kann bereits die Basic Page auswählen und erhält dann bereits eine Vorlage für eine LayoutAwarePage. Alles was man dann noch tun muss, ist den VisualState definieren (z.B. Snapped für die Snap View) und das Verhalten der Layout-Elemente, wenn dieser Zustand erreicht wird.

Mit XAML sieht das dann in etwa so aus:
Snap View mit XAML in Windows Store App definieren weiterlesen