Windows 8 flippt aus

Vermutlich wird es zwei Wege geben. Schlichtweg ignorieren oder Design Orgien mit Expression Blend. Windows 8 Anwendungen können in mindestens vier verschiedenen Layouts daher kommen.

Relativ klar ist Hochformat oder Querformat. Man kann in Visual Studio 11 die METRO styled APP auch dazu zwingen in einem bestimmten Format zu starten.

image

Dazu kommt noch der jeweilige Flipped Mode der quasi das Bild um 180 Grad dreht und so den physikalischen Windows 8 Start Button nach oben bringt.

Je nach Anwendungstyp kann es sinnvoll sein sich als Entwickler vorher festzulegen. Typische Reader werden meist im Hochformat arbeiten. Videos wird man eher quer betrachten.

Dann sind da noch die flexiblen Anwendungen die alles können. Die Weather APP wird gerne als Beispiel genannt. Es gibt Fullscreen (ganzer Bildschirm), Snapped (Randdbereich)  und Filled(das dazwischen. Je in der Landscape und Portrait Variante.

Das erkennen des aktuellen Zustandes gestaltet WinRT noch einfach

Private Sub UserControl36_Loaded(sender As Object, e As RoutedEventArgs) 

Handles Me.Loaded
        AddHandler ViewManagement.ApplicationView.GetForCurrentView().ViewStateChanged, 
AddressOf gedreht
End Sub

Private Async Function gedreht(sender As ApplicationView,

args As ApplicationViewStateChangedEventArgs) As Task
        Dim msg = New MessageDialog(args.ViewState.ToString)
        Await msg.ShowAsync

End Function

Wie  aber gestaltet man den XAML Code dazu? Die Beispiele arbeiten alle mit Viewstates. Es findet sich folgender VB.NET Beispiel Code dazu um den State zu wechseln.

 Private Sub MainPage_ViewStateChanged(ByVal sender As ViewManagement.ApplicationView,

ByVal args As Windows.UI.ViewManagement.ApplicationViewStateChangedEventArgs)
        Select Case args.ViewState
            Case Windows.UI.ViewManagement.ApplicationViewState.Filled
                VisualStateManager.GoToState(Me, "Fill", False)
            Case Windows.UI.ViewManagement.ApplicationViewState.FullScreenPortrait
                VisualStateManager.GoToState(Me, "FullScreenPortrait", False)
            Case Windows.UI.ViewManagement.ApplicationViewState.FullScreenLandscape
                VisualStateManager.GoToState(Me, "FullScreenLandscape", False)
            Case Windows.UI.ViewManagement.ApplicationViewState.Snapped
                VisualStateManager.GoToState(Me, "Snapped", False)
            Case Else
        End Select
    End Sub

Visual Studio 11 kann zwar exzellent XAML editieren, aber keine Animationen und damit auch Viewstates. Wenn man das nicht in XAML runtertippen möchte bleibt nur Expression Blend.

image

Dort kann man für jeden Status Animationen definieren. Diese können Controls auf dem Userinterface bewegen, drehen oder auch schmäler machen.  Man kann auch komplette Controls ein und Ausblenden und so aus einem Grid eine Listview machen. Bisher kenne ich keine Anwendung die das konsequent umsetzt.

So wird beim Kalender aus einer Tagesansicht

Screenshot (42)

in der snapped Darstellung eine Monats Übersicht,

Screenshot (43)

Auch wenn der Visual State Manager von Expression Blend hilft, ein vollständiger Designer für die Sichten ist er nicht. So gehe ich davon aus das die ersten Windows 8 METRO Anwendungen aus dem Store alle nur auf eine Sicht hin optimiert sind.

Nur wenige APPs werden auch im ersten Schritt die Notwendigkeit haben sozusagen aktiv auf der Seite zu laufen, gerade weil auch über Toasts Anwendungen im Suspended Modus sich beim Benutzer melden können.

Kommentar schreiben