Windows Phone 7 : Navigation inter-pages avec la propriete Page.NavigationService
La propriété NavigationService de la classe PhoneApplicationPage (héritée de Page) nous permet de gérer facilement la navigation inter-pages dans les applications Windows Phone 7.
Navigation vers une page précise :
La méthode Navigate de la classe NavigationService permet de naviguer vers une page précise de l’application. Il suffit pour cela de lui passer une URI en guise de paramètre :
private void btnChangePage_Click(object sender, RoutedEventArgs e) { this.NavigationService.Navigate(new Uri(“/OtherPage.xaml”, UriKind.Relative)); } |
L’énumération UriKind permet de préciser si le chemin précisé est un chemin relatif ou absolu.
Dans l’exemple ci-dessus, le clic sur le bouton “Change page” entraine l’affichage de la page “Other page” précisée dans l’URI.
Navigation dans l’historique des pages :
NavigationService enregistre la navigation sous forme d'entrées dans un historique de navigation. Il est tout à fait possible de naviguer facilement dans l’historique des pages visitées en utilisant les méthodes GoBack et GoForward.
La méthode GoBack permet de revenir sur la page précédemment visitée (même effet que le bouton “Previous” des navigateurs web) :
private void btnPrevious_Click(object sender, RoutedEventArgs e) { this.NavigationService.GoBack(); } |
La méthode GoForward, quant à elle, permet d’atteindre de nouveau une page visitée suite à un retour en arrière dans l’historique (même effet que le bouton “Next” des navigateurs web) :
private void btnNext_Click(object sender, RoutedEventArgs e) { this.NavigationService.GoForward(); } |
Les propriétés CanGoBack et CanGoForward de la classe NavigationService permettent de préciser si le retour en arrière et le retour en avant dans l’historique de navigation sont possibles.
Gestion du bouton “Back” :
L’action du bouton “Back” du Windows Phone est pris en charge par le système. Il permet de revenir automatiquement en arrière dans l’historique des pages visitées (= GoBack). Cependant, nous pouvons capturer l’évènement BackKeyPress d’une page pour spécifier un traitement spécifique lorsque l’utilisateur appuiera sur le bouton “Back” :
public Page1() { InitializeComponent(); this.BackKeyPress += new EventHandlerCancelEventArgs>(Page1_BackKeyPress); } void Page1_BackKeyPress(object sender, System.ComponentModel.CancelEventArgs e) { e.Cancel = true; } |
Pi-R.
Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :