Simple Navigation in silverlight


Navigation Framework is really good but in some cases we do not want to use the Navigation Framework. This navigation technique can be used instead which provides simple Navigation.
 
Add the following code in App.xaml:
 
 
        private static Grid root;       
         public static void Navigate(UserControl newPage)
         {
             UserControl oldPage = root.Children[0] as UserControl;
             root.Children.Add(newPage);
             root.Children.Remove(oldPage);
         }
 

Modify the App.xaml as shown below:
 
Previous code:
 
        
private void Application_Startup(object sender, StartupEventArgs e)
         {
             this.RootVisual = new MainPage();
         }

 
Modified code:
 
 
        private void Application_Startup(object sender, StartupEventArgs e)
         {
             root = new Grid();
             root.Children.Add(new MainPage());
             this.RootVisual = root;     
         }

 
Create a new usercontrol NewPage . Add Button to the Page inorder to navigate to the Home. Similarly create a button in the MainPage.xaml as well inorder to navigate to the NewPage.
 
In the Button Click event add the following code ;
 
       
App app = (App)Application.Current;
        App.Navigate(new NewPage());

 
Application.Current gets the System.Windows.Application object for the current application.
 
The new instance of the Page is passed to the Navigate method of App class.
 
When we run the code we are able to navigate between the MainPage and the NewPage.xaml.


Similar Articles