ナビゲーション トポロジの概要
この概要では、WPF のナビゲーション トポロジの概要について説明します。 その後、サンプルを含む 3 つの一般的なナビゲーション トポロジについて説明します。
手記
このトピックを読む前に、ページ関数を使用した WPF での構造化ナビゲーションの概念について理解しておく必要があります。 これらのトピックの詳細については、「構造化ナビゲーションの概要」を参照してください。
このトピックには、次のセクションが含まれています。
固定線形トポロジ 上の
ナビゲーション 固定階層トポロジ での動的ナビゲーションの
ナビゲーション トポロジ
WPF では、ナビゲーションは通常、クリックされたときに他のページに移動するハイパーリンク (Hyperlink) を含むページ (Page) で構成されます。 移動先のページは、一様リソース識別子 (URI) によって識別されます (WPFのパック URI
<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" WindowTitle="Page1">
<Hyperlink NavigateUri="Page2.xaml">Navigate to Page2</Hyperlink>
</Page>
<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" WindowTitle="Page2">
<Hyperlink NavigateUri="Page1.xaml">Navigate to Page1</Hyperlink>
</Page>
これらのページは、ナビゲーション トポロジ に配置され、その構造はページ間の移動方法によって決まります。 この特定のナビゲーション トポロジは単純なシナリオに適していますが、ナビゲーションにはより複雑なトポロジが必要になる場合がありますが、その一部はアプリケーションの実行中にのみ定義できます。
このトピックでは、固定線形
データ項目とナビゲーション ボタンを含むタスク ページを
構造化ナビゲーション トポロジ
ナビゲーション トポロジには、次の 2 種類があります。
固定トポロジ: コンパイル時に定義され、実行時には変更されません。 固定トポロジは、固定シーケンスのページを直線的または階層的な順序で移動する場合に便利です。
動的トポロジ: ユーザー、アプリケーション、またはシステムから収集された入力に基づいて実行時に定義されます。 動的トポロジは、ページをさまざまな順序で移動できる場合に便利です。
ページを使用してナビゲーション トポロジを作成することはできますが、ページ関数を使用するサンプルは、トポロジのページを介したデータの受け渡しと返しのサポートを簡略化する追加のサポートを提供するためです。
固定線形トポロジ上のナビゲーション
固定線形トポロジは、1 つ以上のウィザード ページが固定シーケンスで移動されるウィザードの構造に似ています。 次の図は、固定線形トポロジを使用したウィザードの大まかな構造とフローを示しています。
固定線形トポロジ上を移動する一般的な動作は次のとおりです。
呼び出し元のページから、ウィザードを初期化し、最初のウィザード ページに移動するランチャー ページに移動します。 起動ツール ページ (UI レスの PageFunction<T>) は必要ありません。呼び出し元のページは最初のウィザード ページを直接呼び出すことができるためです。 ただし、ランチャー ページを使用すると、特に初期化が複雑な場合に、ウィザードの初期化を簡略化できます。
ユーザーは、[戻る] ボタンと [進む] ボタン (またはハイパーリンク) を使用してページ間を移動できます。
ユーザーは、履歴を使用してページ間を移動できます。
ユーザーは、[キャンセル] ボタンを押して、任意のウィザード ページからウィザードを取り消すことができます。
ユーザーは、[完了] ボタンを押して、最後のウィザード ページでウィザードを受け入れます。
ウィザードが取り消された場合、ウィザードは適切な結果を返し、データは返しません。
ユーザーがウィザードを受け入れると、ウィザードは適切な結果を返し、収集したデータを返します。
ウィザードが完了すると (承諾または取り消し)、ウィザードが構成するページがジャーナルから削除されます。 これにより、ウィザードの各インスタンスが分離され、潜在的なデータや状態の異常を回避できます。
固定階層トポロジ上の動的ナビゲーション
一部のアプリケーションでは、次の図に示すように、ページは他の 2 つ以上のページへのナビゲーションを許可します。
この構造は固定階層トポロジと呼ばれ、階層が走査されるシーケンスは、多くの場合、アプリケーションまたはユーザーによって実行時に決定されます。 実行時に、2 つ以上の他のページへのナビゲーションを許可する階層内の各ページは、移動先のページを決定するために必要なデータを収集します。 次の図は、前の図に基づくいくつかの可能なナビゲーション シーケンスの 1 つを示しています。
固定階層構造のページ間を移動するシーケンスは実行時に決定されますが、ユーザー エクスペリエンスは固定線形トポロジのユーザー エクスペリエンスと同じです。
呼び出し元のページから、ウィザードを初期化し、最初のウィザード ページに移動するランチャー ページに移動します。 起動ツール ページ (UI レスの PageFunction<T>) は必要ありません。呼び出し元のページは最初のウィザード ページを直接呼び出すことができるためです。 ただし、ランチャー ページを使用すると、特に初期化が複雑な場合に、ウィザードの初期化を簡略化できます。
ユーザーは、[戻る] ボタンと [進む] ボタン (またはハイパーリンク) を使用してページ間を移動できます。
ユーザーは、履歴を使用してページ間を移動できます。
ユーザーは、履歴内を戻る場合にナビゲーション シーケンスを変更できます。
ユーザーは、[キャンセル] ボタンを押して、任意のウィザード ページからウィザードを取り消すことができます。
ユーザーは、[完了] ボタンを押して、最後のウィザード ページでウィザードを受け入れます。
ウィザードが取り消された場合、ウィザードは適切な結果を返し、データは返しません。
ユーザーがウィザードを受け入れると、ウィザードは適切な結果を返し、収集したデータを返します。
ウィザードが完了すると (承諾または取り消し)、ウィザードが構成するページがジャーナルから削除されます。 これにより、ウィザードの各インスタンスが分離され、潜在的なデータや状態の異常を回避できます。
動的に生成されたトポロジ上のナビゲーション
一部のアプリケーションでは、2 つ以上のページが移動するシーケンスは、ユーザー、アプリケーション、外部データのいずれによっても、実行時にのみ決定できます。 次の図は、未確定のナビゲーション シーケンスを持つ一連のページを示しています。
次の図は、実行時にユーザーが選択したナビゲーション シーケンスを示しています。
ナビゲーション シーケンスは、動的に生成されたトポロジと呼ばれます。 ユーザーの場合、他のナビゲーション トポロジと同様に、ユーザー エクスペリエンスは前のトポロジの場合と同じです。
呼び出し元のページから、ウィザードを初期化し、最初のウィザード ページに移動するランチャー ページに移動します。 起動ツール ページ (UI レスの PageFunction<T>) は必要ありません。呼び出し元のページは最初のウィザード ページを直接呼び出すことができるためです。 ただし、ランチャー ページを使用すると、特に初期化が複雑な場合に、ウィザードの初期化を簡略化できます。
ユーザーは、[戻る] ボタンと [進む] ボタン (またはハイパーリンク) を使用してページ間を移動できます。
ユーザーは、履歴を使用してページ間を移動できます。
ユーザーは、[キャンセル] ボタンを押して、任意のウィザード ページからウィザードを取り消すことができます。
ユーザーは、[完了] ボタンを押して、最後のウィザード ページでウィザードを受け入れます。
ウィザードが取り消された場合、ウィザードは適切な結果を返し、データは返しません。
ユーザーがウィザードを受け入れると、ウィザードは適切な結果を返し、収集したデータを返します。
ウィザードが完了すると (承諾または取り消し)、ウィザードが構成するページがジャーナルから削除されます。 これにより、ウィザードの各インスタンスが分離され、潜在的なデータや状態の異常を回避できます。
関連項目
.NET Desktop feedback