public partial class MyNavigation : Shell { public MyNavigation() { Items.Add( new TabBar() { Items = { new ShellContent { ContentTemplate = new DataTemplate( typeof( HomeView ) ), Icon = ImageSource.FromResource( "Serenocalm.Forms.Resources.Home.png" ), Route = "Home" }, new ShellContent { ContentTemplate = new DataTemplate( typeof( SettingsView ) ), Icon = ImageSource.FromResource( "Serenocalm.Forms.Resources.Settings.png" ), Route = "Settings" } } }); Routing.RegisterRoute( "ChildScreenOne", typeof( ChildScreenOne ) ); Routing.RegisterRoute( "ChildScreenTwo", typeof( ChildScreenTwo ) ); Style = ControlStyles.Shell_BaseStyle; } } public class HomeView : ContentPage { public HomeView() { Style = ControlStyles.ContentPage_BaseStyle; Title = "Home"; Button _button = new Button { Text = "Goto Screen One" }; Grid grid = new Grid() { RowDefinitions = { new RowDefinition { Height = GridLength.Star }, new RowDefinition { Height = GridLength.Auto }, new RowDefinition { Height = GridLength.Star } }, ColumnDefinitions = { new ColumnDefinition { Width = GridLength.Star }, new ColumnDefinition { Width = GridLength.Auto }, new ColumnDefinition { Width = GridLength.Star } } }; grid.Children.Add( _button, 1, 1 ); _button.Clicked += _button_Clicked; Content = grid; } private async void _button_Clicked( Object sender, EventArgs e ) { await Shell.Current.GoToAsync( "ChildScreenOne" ); } } public class ChildScreenOne : ContentPage { public ChildScreenOne() { Title = "Child Screen One"; Style = ControlStyles.ContentPage_BaseStyle; Button _button = new Button { Text = "Goto Screen Two" }; Grid grid = new Grid() { RowDefinitions = { new RowDefinition { Height = GridLength.Star }, new RowDefinition { Height = GridLength.Auto }, new RowDefinition { Height = GridLength.Star } }, ColumnDefinitions = { new ColumnDefinition { Width = GridLength.Star }, new ColumnDefinition { Width = GridLength.Auto }, new ColumnDefinition { Width = GridLength.Star } } }; grid.Children.Add( _button, 1, 1 ); _button.Clicked += _button_Clicked; Content = grid; } private async void _button_Clicked( Object sender, EventArgs e ) { await Shell.Current.GoToAsync( "ChildScreenTwo" ); } } public class ChildScreenTwo : ContentPage { public ChildScreenTwo() { Title = "Child Screen Two"; Style = ControlStyles.ContentPage_BaseStyle; Button _button = new Button { Text = "Goto Home" }; Grid grid = new Grid() { RowDefinitions = { new RowDefinition { Height = GridLength.Star }, new RowDefinition { Height = GridLength.Auto }, new RowDefinition { Height = GridLength.Star } }, ColumnDefinitions = { new ColumnDefinition { Width = GridLength.Star }, new ColumnDefinition { Width = GridLength.Auto }, new ColumnDefinition { Width = GridLength.Star } } }; grid.Children.Add( _button, 1, 1 ); _button.Clicked += _button_Clicked; Content = grid; Shell.SetPresentationMode( this, PresentationMode.ModalAnimated ); } private async void _button_Clicked( Object sender, EventArgs e ) { await Shell.Current.GoToAsync( @"\\Home" ); } }