Framework Navigate pour Silverlight.

 

Ce nouveau modèle de projet peut gérer pour vous une page maitre, un menu et une navigation vers vos pages.

 

Vous pouvez créer un projet de type « Navigateur silverlight ». Vous obtiendrez une maquette, que je commente ci après. Dans un but de clarté, j’ai éliminé les éléments décoratifs.

 

Une nouvelle bibliothèque a été ajoutée au projet :

System.Windows.Controls.Navigation.

 

Dans le xaml deux nouveaux espaces de noms sont ajoutés :

 

 

La fenêtre principale hérite de User Control, elle intègre :

 

<navigation:Frame x:Name="ContentFrame"                           

Source="/Home" Navigated="ContentFrame_Navigated"                               NavigationFailed="ContentFrame_NavigationFailed">

</navigation:Frame>

 

     <navigation:Frame x:Name="ContentFrame"

                  Source="/Home" Navigated="ContentFrame_Navigated"

NavigationFailed="ContentFrame_NavigationFailed">

          <navigation:Frame.UriMapper>

                  <uriMapper:UriMapper>

<uriMapper:UriMapping Uri="" MappedUri="/Views/Home.xaml"/>

<uriMapper:UriMapping Uri="/{pageName}" MappedUri="/Views/{pageName}.xaml"/>

                  </uriMapper:UriMapper>

           </navigation:Frame.UriMapper>

     </navigation:Frame>

 

Ici les règles sont:

 

Vous pouvez compléter la page principale avec des liens :

   

<HyperlinkButton  NavigateUri="/Home" TargetName="ContentFrame" Content="accueil"/>

<HyperlinkButton  NavigateUri="/About" TargetName="ContentFrame"

Content="à propos de"/>

 

Créer vos pages normalement en demandant l’ajout d’un nouvel élément dans le répertoire Views. Noter que ces pages héritent de la classe Page et non plus de la classe User Control.

 

Chacune de vos pages offre un handler d’événement, qui vous permet d’initialiser :

 

public partial class Home : Page

    {

        public Home()

        {

            InitializeComponent();

        }

 

        // S'exécute lorsque l'utilisateur navigue vers cette page.

        protected override void OnNavigatedTo(NavigationEventArgs e)

        {

        }

    }

 

Lancer cette applcation et pbserver l’affichage dans la barre d’adresse du navigateur ; tester le bouton précédent du navigateur.

 

 

Chapitre suivant.