方法: 移動履歴の前後への移動

この例では、ナビゲーション履歴内のエントリ間を前方または後方に移動する方法を示します。

次のホストのコンテンツから実行されたコードでは、ナビゲーション履歴内を、一度に 1 エントリずつ、前方または後方に移動できます。

1 つ前方のエントリに移動するには、その前にまず、CanGoForward プロパティを調べて、ナビゲーション履歴で前方にエントリがあることを確認する必要があります。 1 つ前方のエントリに移動するには、GoForward メソッドを呼び出します。 これを次の例に示します。

void navigateForwardButton_Click(object sender, RoutedEventArgs e)
{
    // Navigate forward one page from this page, if there is an entry
    // in forward navigation history
    if (this.NavigationService.CanGoForward)
    {
        this.NavigationService.GoForward();
    }
    else
    {
        MessageBox.Show("No entries in forward navigation history.");
    }
}
Private Sub navigateForwardButton_Click(ByVal sender As Object, ByVal e As RoutedEventArgs)
    ' Navigate forward one page from this page, if there is an entry
    ' in forward navigation history
    If Me.NavigationService.CanGoForward Then
        Me.NavigationService.GoForward()
    Else
        MessageBox.Show("No entries in forward navigation history.")
    End If
End Sub

1 つ後方のエントリに移動するには、その前にまず、CanGoBack プロパティを調べて、ナビゲーション履歴で後方にエントリがあることを確認する必要があります。 1 つ後方のエントリに移動するには、GoBack メソッドを呼び出します。 これを次の例に示します。

void navigateBackButton_Click(object sender, RoutedEventArgs e)
{
    // Navigate back one page from this page, if there is an entry
    // in back navigation history
    if (this.NavigationService.CanGoBack)
    {
        this.NavigationService.GoBack();
    }
    else
    {
        MessageBox.Show("No entries in back navigation history.");
    }
}
Private Sub navigateBackButton_Click(ByVal sender As Object, ByVal e As RoutedEventArgs)
    ' Navigate back one page from this page, if there is an entry
    ' in back navigation history
    If Me.NavigationService.CanGoBack Then
        Me.NavigationService.GoBack()
    Else
        MessageBox.Show("No entries in back navigation history.")
    End If
End Sub

CanGoForwardGoForwardCanGoBackGoBack は、NavigationWindowFrameNavigationService によって実装されています。

Note

GoForward を呼び出して、ナビゲーション履歴の前方にエントリがない場合、または GoBack を呼び出して、ナビゲーション履歴の後方にエントリがない場合は、InvalidOperationException がスローされます。