locked
WP7 tip – Naviguer entre les pages d’une application RRS feed

  • Discussion générale

  • Pour naviguer dans les pages d’une application WP7, nous pouvons utiliser deux méthodes : les boutons HyperlinkButton ou la navigation par le code.

    Commençons par les composants HyperlinkButton :

     

    Créez une nouvelle application WP7 et ajoutez deux nouvelles pages : Page1 et Page2. Dans la page principale MainPage.xaml ajoutez deux boutons de type HyperlinkButton :

     

    <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">

                <HyperlinkButton Content="Page 1" Height="49" Margin="-4,50,154,508" Name="hyperlinkButton1" Width="200" NavigateUri="/Page1.xaml" />

                <HyperlinkButton Content="Page 2" Height="47" Margin="50,105,206,455" Name="hyperlinkButton2" Width="200" NavigateUri="/Page2.xaml" Click="hyperlinkButton2_Click" />           

            </Grid>

     

    Dans les propriétés NavigateUri de ces boutons, ajoutez les chemins relatifs vers les pages de destination Page1.xaml et Page2.xaml.

     

    Lancez l’application et vérifiez qu’en cliquant sur ces boutons on arrive sur les pages correctes et on peut retourner à la page principale en utilisant le bouton « Retour » du téléphone.

     

     

    Pour la navigation par le code, nous allons utiliser deux contrôles de type Button :

    <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">

                <HyperlinkButton Content="Page 1" Height="49" Margin="-4,50,154,508" Name="hyperlinkButton1" Width="200" NavigateUri="/Page1.xaml" />

                <HyperlinkButton Content="Page 2" Height="47" Margin="50,105,206,455" Name="hyperlinkButton2" Width="200" NavigateUri="/Page2.xaml" Click="hyperlinkButton2_Click" />

                <Button Content="Page 1" Height="83" HorizontalAlignment="Left" Margin="87,200,0,0" Name="button1" VerticalAlignment="Top" Width="147" Click="button_Click" />

                <Button Content="Page 2" Height="77" HorizontalAlignment="Left" Margin="87,275,0,0" Name="button2" VerticalAlignment="Top" Width="151" Click="button_Click"/>

            </Grid>

     

    Choisissez les noms de ces deux boutons, « button1 » et « button2 » et remarquez le nom de la méthode « button_Click », qui gère l’évènement Click. On utilise la même méthode et on choisit le bouton correct dans le code, en vérifiant le nom de l’objet appelant :

     

    private void button_Click(object sender, RoutedEventArgs e)

            {

                switch(((Button)sender).Name)

                {

                    case "button1":

                        NavigationService.Navigate(new Uri("/Page1.xaml", UriKind.Relative));

                        break;

                    case "button2":

                        NavigationService.Navigate(new Uri("/Page2.xaml", UriKind.Relative));

                        break;

                }

     

            }

     

    Complétez l’application en ajoutant dans la page de code de MainPage la méthode ci-dessus. Comme vous voyez, l’utilisation de NavigationService.Navigate donne les mêmes résultats que l’utilisation des boutons HyperlinkButtons.

     


    Suivez MSDN sur Twitter 

    lundi 29 novembre 2010 14:15

Toutes les réponses

  • Bonjour, je vous remercie pour vos infos qui m'ont été très utile...

    Cependant je reste bloqué face un dilem, celle de faire apparaitre une annimation sympa lors de l'ouverture/naviguation d'une nouvelle page !

    Style effet glisser ou qui se coulisse afin de rendre plus agréable à regarder lors de la navigation !

    J'ai essayer chercher des tutos sur le web mais tout est en anglais et plutot compliquer à comprendre, j'ai remarqué que certain utilisaient express blend pour créer une sorte de nouveau theme...mais je ne comprend pas trop, je pensais que windows aurait totu de meme penser a inclure une fonction tout simple a activer depuis le programme de devellopement nan ??

     

    Merci d'avance

    lundi 20 décembre 2010 12:29
  • Bonjour KingMiddle,

    Vous pouvez utiliser les transitions, ou bien implémenter vos propres StoryBoard.

    Pour naviguer entre les pages de différents projets on peut faire ceci :

    depuis ProjectB

    NavigationService.Navigate(

     

    new Uri("/ProjectA;component/Views/View.xaml", UriKind.Relative));

    Cordialement,


    Dorian LAMANDE
    lundi 17 janvier 2011 10:44