NavigationService クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
ナビゲーションをサポートするメソッド、プロパティ、およびイベントを格納します。
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 を渡すことで、コンテンツを に移動することもできます。
- NavigationService.Navigate(Uri)
- NavigationService.Navigate(Uri, Object)
- NavigationService.Navigate(Uri, Object, Boolean)
コンテンツが URI で に移動すると、 NavigationService コンテンツを含む オブジェクトが返されます。
ナビゲーションの有効期間は、次のイベントを通じて追跡できます。
- Navigating
- Navigated
- NavigationProgress
- NavigationFailed
- NavigationStopped
- LoadCompleted
- FragmentNavigation
ナビゲーションが発生するたびにすべてのイベントが発生するわけではありません。発生するイベントのセットは、発生するナビゲーションの種類 (コンテンツまたはコンテンツ フラグメント) と、ナビゲーションの完了 (キャンセル、停止、または失敗) によって決まります。
次の図は、これらのイベントが発生するシーケンスを示しています。
ナビゲーション中またはナビゲーション後に、NavigationService移動するコンテンツ () の URI、現在のコンテンツの URI (SourceCurrentSource)、および () に移動されたコンテンツを含むオブジェクトなど、移動対象のコンテンツに関する情報をContent提供します。
コンテンツに移動すると、 NavigationService ナビゲーション履歴にエントリとしてナビゲーションが記録されます。 新しいナビゲーションが発生したときに、メソッドを呼び出すか、前方ナビゲーション履歴のエントリに移動して を呼びGoForward出Navigateすことによって、エントリが戻るナビゲーション履歴に追加されます。 を呼び出 GoBackして、ナビゲーション履歴の戻るエントリに移動することで、ナビゲーション履歴を転送するエントリが追加されます。 CanGoBack と は、 CanGoForward それぞれ前後のナビゲーション履歴にエントリがあるかどうかを報告します。 また、戻るナビゲーション履歴の最新のエントリは、 を呼び出 RemoveBackEntryすことによって削除できます。
既定では、 NavigationService はコンテンツ オブジェクトのインスタンスをナビゲーション履歴に格納しません。 代わりに、 NavigationService ナビゲーション履歴を使用して、 に移動するたびにコンテンツ オブジェクトの新しいインスタンスを作成します。 この動作は、大量のコンテンツと大量のコンテンツが移動されている場合に、過剰なメモリ消費を回避するように設計されています。 そのため、コンテンツの状態は、あるナビゲーションから次のナビゲーションに記憶されません。 ただし、WPF には、ナビゲーション履歴にコンテンツの一部の状態を格納できるいくつかの手法が用意されています。
を使用すると AddBackEntry、1 つのページ インスタンスに対して複数の状態セットを記憶することもできます。
NavigationService
sealed
は クラスであるためインスタンス化できません。代わりに、NavigationServiceナビゲーションを有効にするためにナビゲーターによって使用されます。 WPF には、 と Frameの 2 つのナビゲーターがありますNavigationWindow。
視覚的には、XBAP はインターネット エクスプローラーをナビゲーターとして使用して、統合されたユーザー エクスペリエンスを提供します。 ただし、物理的には、XBAP は実際にはナビゲーターとして使用NavigationWindowされます。インターネット エクスプローラーで実行されている XBAP の プロパティは への参照をNavigationWindow返し、 によってNavigationWindow管理されるナビゲーション履歴は、インターネット エクスプローラーによって管理されるナビゲーション履歴と次の方法で統合MainWindowされます。
- XBAP 内から 、、GoBackおよび GoForward を呼び出Navigateしてコンテンツに移動すると、関連するナビゲーション履歴エントリもインターネット エクスプローラーナビゲーション履歴に追加されます。
- インターネット エクスプローラー ナビゲーション UI のエントリを選択すると、インターネット エクスプローラーによってNavigationService、それらのエントリに関連付けられているコンテンツに戻ったり転送されたりします。
注意
は Frame 、独自のナビゲーション履歴を提供したり、それをホストするナビゲーターのナビゲーション履歴を使用したりすることができます。 独自のナビゲーション履歴を提供する場合Frameは、独自のナビゲーション UI を表示してナビゲーション履歴内のエントリ間を移動できます。これらのエントリはホスト ナビゲーター (、、Frameブラウザー) のナビゲーション履歴に追加されず、その結果、各のナビゲーション UI から に移動することはできません (NavigationWindowを参照)。JournalOwnership
XBAP のサポートの詳細については、「 WPF ブラウザーでホストされるアプリケーション (XBAP) に関してよく寄せられる質問」を参照してください。
プロパティ
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() メソッドが呼び出されたときや、現在のナビゲーションの進行中に新しいナビゲーションが要求されたときに発生します。 |
適用対象
.NET