NavigationService クラス

定義

ナビゲーションをサポートするメソッド、プロパティ、およびイベントを格納します。

public ref class NavigationService sealed
public sealed class NavigationService
type NavigationService = class
Public NotInheritable Class NavigationService
継承
NavigationService

注釈

NavigationService は、ブラウザー スタイルのナビゲーションのコンテキスト内でコンテンツをダウンロードする機能をカプセル化します。

コンテンツには、任意の種類の.NET Framework オブジェクトファイルと HTML ファイルを指定できます。 ただし、一般に、ナビゲーション用にコンテンツをパッケージ化する方法として、ページが推奨されます (「」を参照)。Page

オブジェクトのインスタンスを指定し、オブジェクトを受け入れるメソッドの Navigate オーバーロードを呼び出すことで、コンテンツに移動できます。

または、URI を受け取るメソッド オーバーロードのいずれかに Navigate 相対 URI または絶対 URI を渡すことで、コンテンツを に移動することもできます。

コンテンツが URI で に移動すると、 NavigationService コンテンツを含む オブジェクトが返されます。

ナビゲーションの有効期間は、次のイベントを通じて追跡できます。

ナビゲーションが発生するたびにすべてのイベントが発生するわけではありません。発生するイベントのセットは、発生するナビゲーションの種類 (コンテンツまたはコンテンツ フラグメント) と、ナビゲーションの完了 (キャンセル、停止、または失敗) によって決まります。

次の図は、これらのイベントが発生するシーケンスを示しています。

ページ ナビゲーション フロー チャート

ナビゲーション中またはナビゲーション後に、NavigationService移動するコンテンツ () の URI、現在のコンテンツの URI (SourceCurrentSource)、および () に移動されたコンテンツを含むオブジェクトなど、移動対象のコンテンツに関する情報をContent提供します。

コンテンツに移動すると、 NavigationService ナビゲーション履歴にエントリとしてナビゲーションが記録されます。 新しいナビゲーションが発生したときに、メソッドを呼び出すか、前方ナビゲーション履歴のエントリに移動して を呼びGoForwardNavigateすことによって、エントリが戻るナビゲーション履歴に追加されます。 を呼び出 GoBackして、ナビゲーション履歴の戻るエントリに移動することで、ナビゲーション履歴を転送するエントリが追加されます。 CanGoBack と は、 CanGoForward それぞれ前後のナビゲーション履歴にエントリがあるかどうかを報告します。 また、戻るナビゲーション履歴の最新のエントリは、 を呼び出 RemoveBackEntryすことによって削除できます。

既定では、 NavigationService はコンテンツ オブジェクトのインスタンスをナビゲーション履歴に格納しません。 代わりに、 NavigationService ナビゲーション履歴を使用して、 に移動するたびにコンテンツ オブジェクトの新しいインスタンスを作成します。 この動作は、大量のコンテンツと大量のコンテンツが移動されている場合に、過剰なメモリ消費を回避するように設計されています。 そのため、コンテンツの状態は、あるナビゲーションから次のナビゲーションに記憶されません。 ただし、WPF には、ナビゲーション履歴にコンテンツの一部の状態を格納できるいくつかの手法が用意されています。

を使用すると AddBackEntry、1 つのページ インスタンスに対して複数の状態セットを記憶することもできます。

NavigationServicesealedは クラスであるためインスタンス化できません。代わりに、NavigationServiceナビゲーションを有効にするためにナビゲーターによって使用されます。 WPF には、 と Frameの 2 つのナビゲーターがありますNavigationWindow

視覚的には、XBAP はインターネット エクスプローラー 7 をナビゲーターとして使用して、統合されたユーザー エクスペリエンスを提供します。 ただし、物理的には、XBAP は実際にはナビゲーターとして使用NavigationWindowされます。インターネット エクスプローラー 7 で実行されている XBAP の プロパティは への参照をNavigationWindow返し、 によってNavigationWindow管理されるナビゲーション履歴は、次の方法でインターネット エクスプローラー 7 によって管理されるナビゲーション履歴と統合MainWindowされます。

  • XBAP 内から 、、GoBackおよび GoForward を呼び出Navigateしてコンテンツに移動すると、関連するナビゲーション履歴エントリもインターネット エクスプローラー 7 ナビゲーション履歴に追加されます。

  • インターネット エクスプローラー 7 ナビゲーション UI のエントリが選択されている場合、インターネット エクスプローラー 7 はNavigationService、それらのエントリに関連付けられているコンテンツに戻ったり転送したりします。

注意

Frame 、独自のナビゲーション履歴を提供したり、それをホストするナビゲーターのナビゲーション履歴を使用したりすることができます。 独自のナビゲーション履歴を提供する場合Frameは、独自のナビゲーション UI を表示してナビゲーション履歴内のエントリ間を移動できます。これらのエントリはホスト ナビゲーター (、Frame、インターネット エクスプローラー) のナビゲーション履歴に追加されず、その結果、各のナビゲーション UI から に移動することはできません (NavigationWindow参照JournalOwnership)。

プロパティ

CanGoBack

"戻る" ナビゲーション履歴にエントリが 1 つ以上あるかどうかを示す値を取得します。

CanGoForward

"進む" ナビゲーション履歴にエントリが 1 つ以上あるかどうかを示す値を取得します。

Content

現在のコンテンツを格納しているオブジェクトへの参照を取得または設定します。

CurrentSource

最後に移動した先のコンテンツの URI を取得します。

Source

現在のコンテンツの URI (移動中の場合は移動先の新しいコンテンツの URI) を取得または設定します。

メソッド

AddBackEntry(CustomContentState)

CustomContentState オブジェクトを格納しているエントリを "戻る" ナビゲーション履歴に追加します。

Equals(Object)

指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判断します。

(継承元 Object)
GetHashCode()

既定のハッシュ関数として機能します。

(継承元 Object)
GetNavigationService(DependencyObject)

指定した NavigationService がコンテンツに含まれているナビゲーターの DependencyObject への参照を取得します。

GetType()

現在のインスタンスの Type を取得します。

(継承元 Object)
GoBack()

"戻る" ナビゲーション履歴の最新のエントリに移動します (エントリが存在する場合)。

GoForward()

"進む" ナビゲーション履歴の最新のエントリに移動します (エントリが存在する場合)。

MemberwiseClone()

現在の Object の簡易コピーを作成します。

(継承元 Object)
Navigate(Object)

オブジェクトに格納されているコンテンツに非同期に移動します。

Navigate(Object, Object)

オブジェクトに格納されているコンテンツに非同期に移動して、ナビゲーション中の処理に使用するデータを格納しているオブジェクトを渡します。

Navigate(Uri)

URI で指定されたコンテンツに非同期に移動します。

Navigate(Uri, Object)

URI にあるソース コンテンツに非同期に移動して、ナビゲーション中の処理に使用するデータを格納しているオブジェクトを渡します。

Navigate(Uri, Object, Boolean)

URI にあるソース コンテンツに非同期に移動して、ナビゲーション中の処理に使用するナビゲーションの状態を格納しているオブジェクトを渡し、コンテンツをサンドボックスに配置します。

Refresh()

現在のコンテンツを再度読み込みます。

RemoveBackEntry()

"戻る" 履歴から最新の履歴項目を削除します。

StopLoading()

現在のナビゲーション要求に対応するコンテンツのダウンロードを中止します。

ToString()

現在のオブジェクトを表す文字列を返します。

(継承元 Object)

イベント

FragmentNavigation

コンテンツ フラグメントへのナビゲーションが開始されるときに発生します。これは、目的のフラグメントが現在のコンテンツ内にある場合は直ちに発生し、目的のフラグメントが異なるコンテンツにある場合はソース XAML コンテンツが読み込まれた後に発生します。

LoadCompleted

移動先のコンテンツが読み込まれ、解析されて、描画が開始されると発生します。

Navigated

移動先のコンテンツが見つかったときに発生します。この時点で Content プロパティからコンテンツを取得できますが、読み込みはまだ完了していない可能性があります。

Navigating

新しいナビゲーションが要求されたときに発生します。

NavigationFailed

要求されたコンテンツへの移動中にエラーが発生すると発生します。

NavigationProgress

ナビゲーション進行状況の情報提供を目的として、ダウンロード中に定期的に発生します。

NavigationStopped

StopLoading() メソッドが呼び出されたときや、現在のナビゲーションの進行中に新しいナビゲーションが要求されたときに発生します。

適用対象