Chapter 11. Navigation

One of the mantras of the WPF team was "best of Windows, best of the Web," which drove much of the innovation in the platform. In the preceding chapter, we looked at windows in a very Windows-centric way, but there's one innovation that the Web has made popular that we haven't discussed: navigation between content one page at a time.

NavigationWindow

The idea of navigation in WPF is that instead of showing multiple windows in a cascading style—a popular Windows application style used in the preceding chapter—we show pages of content inside a single frame, using standard navigation metaphors, like the Back and Forward buttons, to go between pages. If you want to build an application that does this, you can derive from the NavigationWindow class instead of the Window class and navigate to any WPF content you like (see Example 11-1).

Example 11-1. Navigation basics

<!-- Window1.xaml -->
<NavigationWindow ...
  x:Class="NavigationBasics.Window1"
  Title="NavigationBasics" />

// Window1.xaml.cs
...
using System.Windows.Navigation; // home of the NavigationWindow

public partial class Window1 : NavigationWindow {
  public Window1(  ) {
    InitializeComponent(  );

// Navigate to some content
    Navigate("Hello, World.");
  }
}

In Example 11-1, we've defined a custom NavigationWindow that sets its initial content to a string using the Navigate method, which works as you'd expect (Figure 11-1).

Figure 11-1. The simplest navigation application

Notice in Figure 11-1 the presence ...

Get Programming WPF, 2nd Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.