Pages

If we want to get a little fancier than a string, we can create multiple Pages of content, which is specifically what the Page class was invented for (see Example 11-2).

Example 11-2. Packaging content with a Page object

<!-- Page1.xaml -->
<Page
 ...
    x:Class="NavigationBasics.Page1"
    Title="Page 1"
    WindowTitle="Welcome to Page 1">
  <TextBlock VerticalAlignment="Bottom">
    <Hyperlink NavigateUri="Page2.xaml">Click to see page 2</Hyperlink>
  </TextBlock>
</Page>



// Page1.xaml.cs
...
using System.Windows.Controls; // home of the Page

public partial class Page1 : Page{
public Page1(  ) {
// Initialize page from XAML
    InitializeComponent(  );
  }
}

To get the basic skeleton of a new Page class, you can right-click on your project in the Visual Studio 2005 Solution Explorer, choosing Add → New Item, and select Page (WPF). Example 11-2 was started that way, adding the WindowTitle, the Title, and the content. The WindowTitle is what shows up in the caption of the navigation host. The Title property is what shows up in the history drop-down. If you don't set a page's Title property, it will be composed for you as WindowTitle (foo.xaml), which isn't particularly friendly.

The content in Example 11-2 uses a Hyperlink, which is a nice little element that handles clicking for navigation applications.[70] We're setting the NavigateUri property to point to the page resource we'd like it to load for us. The NavigateUri supports the normal URI format (e.g., a URL to an HTTP file on the Web), as well as ...

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.