Süßer als vom verbotenen Baum?

10 Tipps für Windows Phone Mango 2. Navigation und der Zurück-Knopf
Kommentare

Einst galt sie als Speise der Götter – „Mangifera indica“ so der lateinische Name der Frucht, die namensgebend für die neueste Version von Windows Phone ist. In dieser Artikelserie erfahren Sie Tipps und Tricks, die die Entwicklung Ihrer Windows-Phone-7.5-Applikation erleichtern sollen. Beginnen wollen wir mit dem Bauen von Standort-abhängigen Anwendungen.

Ein integraler Bestandteil von Windows Phone ist der Zurück-Hardwareknopf auf dem Gerät. Damit können Endbenutzer jederzeit einen Schritt zurückgehen – ähnlich einem Browser. Auch die Implementierung dieser Funktionalität erinnert manche Entwickler sicherlich an die Webwelt. Eine typische Windows-Phone-Anwendung besteht aus mehreren Seiten, zu denen man mit einer URL navigieren kann. Jede Seite besteht aus einer .XAML-Datei für das Layout und einer zugehörigen .CS-Datei für den Code.

Von einer Seite zur nächsten navigieren

Um die Seitennavigation zu verwenden, gibt es auf jeder Seite die Eigenschaften NavigationService und NavigationContext. Listing 1 zeigt, wie Sie bei Button Click zu einer neuen Seite navigieren. Beachten Sie die Angabe von eigenen Query-String-Parametern im URL. Um die Zurück-Funktion kümmert sich das Betriebssystem von ganz alleine, die jeweils oberste Seite vom Navigations-Stack wird entfernt und die vorherige angezeigt.

Wann wird navigiert?

Durch das Überladen von vier Methoden können Sie Aktionen ausführen, vor oder nachdem von oder zu einer Seite navigiert wird:

  • OnNavigatingTo
  • OnNavigatedTo
  • OnNavigatingFrom
  • OnNavigatedFrom

In Listing 1 wird beim Navigieren auf eine Seite der übergebene Query-String-Wert „Name“ ausgelesen und in einer TextBox dargestellt.

NavigationService.Navigate(new Uri("/Page2.xaml?name=max", UriKind.Relative);
//...
protected override void OnNavigatedTo(NavigationEventArgs e)
{
    this.textBox1.Text = this.NavigationContext.QueryString["name"];
}
  

In OnNavigatingFrom können Sie übrigens durch Angabe von e.Cancel=true das Verlassen der Seite verhindern – wenn z. B. Daten noch nicht gespeichert wurden.

Zurück-Knopf abfangen

Wollen Sie auf den Zurück-Knopf in applikationseigene Weise reagieren? Die ist dann nötig, wenn Sie zum Beispiel eine Applikation geschrieben haben, die noch innerhalb einer Seite Zurück-Funktionalität braucht (Navigation durch ein Panorama zum Beispiel). Durch Überladung der OnBackKeyPress-Methode einer Seite können Sie die eingebaute Zurück-Funktion verhindern und selbst auf den Knopfdruck reagieren (Listing 2 zeigt wie).

protected override void OnBackKeyPress(CancelEventArgs e)
{
    e.Cancel = true;
    // Eigener Code, der auf den Zurück-Knopf reagiert
}
  

Übrigens: Für fertige Seitenübergangsanimationen werfen Sie einen Blick in das Silverlight Control Toolkit.

Fazit: Eine Phone-Applikation ist gleichsam wie eine Webseite aus einzelnen Seiten aufgebaut. Das Betriebssystem kümmert sich um die Navigation zwischen diesen Seiten.

DI Max Knor ist Technologieberater für Softwareentwicklung. Er betreut als Technical Global Alliance Manager bei Microsoft Corp. eine Hand voll internationaler ISVs im Bereich Retail-Software. Max hält Vorlesungen zu Cloud Computing, Softwarearchitekturen und Webentwicklung an zwei Fachhochschulen.
Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -