Navigating between pages (XAML)
Learn how Windows Runtime apps using C++, C#, or Visual Basic support navigation between pages and content.
Most Windows Runtime apps have multiple pages of content and functionality for users to explore and engage with. Here, we explain how Windows Runtime apps using C++, C#, or Visual Basic typically use a single-page navigation model and how to implement navigation using dedicated controls.
Multi-page navigation is used to navigate between pages or screens without worrying about app context. Each page has its own set of functions and data, a new set of XAML to display, style information, and so on. This is very typical of web pages within a website.
In contrast, a single-page navigation model uses a single page to maintain app context and load additional data and content, as needed. You still split your application into multiple files, but instead of moving from page to page, your app loads other documents into the main page. Because your app's main page is never unloaded, your scripts are never unloaded, which makes it easier to manage state, transitions, or animations. We recommend that Windows Store apps using C++, C#, or Visual Basic use the single-page navigation model.
The Microsoft Visual Studio project templates for Windows Runtime apps using C++, C#, or Visual Basic (Hub, Grid, and Split) use the single-page navigation model. In this model, XAML pages get loaded into a central frame as the content of the default Window, and then users navigate to other pages using that frame. The pages are loaded as needed, typically in response to user actions. This provides a smoother, app-like transition between pages, and also makes it easier to manage app state. See C#, VB, and C++ project templates for Windows Runtime apps to get an overview of the templates.
For help choosing the best navigation pattern for your app, see Navigation patterns.
This topic discusses basic navigation concepts and demonstrates how to create an app that navigates between two pages.
Learn how to link to external webpages and display them in your Windows Runtime app using C# or Visual Basic.
- For designers
- Navigation patterns
- Command patterns
- Back button
- Guidelines for the hub control
- Guidelines for app bars (Windows Store apps)
- Making the app bar accessible
- For developers (XAML)
- Windows.UI.Xaml.Controls Hub class
- Windows.UI.Xaml.Controls AppBar class
- Windows.UI.Xaml.Controls CommandBar class
- Your first app - Part 3: Navigation, layout, and views
- Your first app - Add navigation and views in a C++ Windows Store app (tutorial 3 of 4)
- XAML Hub control sample
- XAML AppBar control sample
- XAML Navigation sample
- Adding app bars (XAML)
- Quickstart: Navigating between pages