Share via


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 傳遞至接受 URI 的 Navigate 其中一個方法多載,以巡覽至內容:

當內容依 URI 巡覽至 時, NavigationService 會傳回包含內容的物件。

導覽的存留期可透過下列事件進行追蹤:

並非所有事件都會在每次導覽發生時引發;引發的事件集取決於 (內容或內容片段) 發生的瀏覽類型,以及流覽如何完成 (取消、停止或失敗) 。

下圖說明引發這些事件的順序:

頁面流覽流程圖 頁面

在瀏覽期間或之後, NavigationService 提供所瀏覽內容的相關信息,包括巡覽至 () Source 的內容 URI、目前內容的 CurrentSource URI () ,以及包含巡覽至 () Content 之內容的 物件。

流覽至內容時, NavigationService 會將導覽記錄為導覽歷程記錄中的專案。 當新的瀏覽發生、呼叫 方法,或藉由呼叫 Navigate 來巡覽至向前瀏覽歷程記錄中的專案,或藉由呼叫 GoForward,將專案新增至返回瀏覽歷程記錄。 藉由呼叫 GoBack,藉由巡覽至返回瀏覽歷程記錄中的專案,將專案新增至向前瀏覽歷程記錄。 CanGoBack 和會 CanGoForward 分別報告上一頁和向前瀏覽歷程記錄中是否有專案。 此外,呼叫 即可移除 RemoveBackEntry返回瀏覽歷程記錄中最新的專案。

根據預設, NavigationService 不會將內容對象的實例儲存在瀏覽歷程記錄中。 相反地, NavigationService 每次使用瀏覽歷程記錄流覽至內容物件時,都會建立新的內容對象實例。 此行為的設計目的是要避免在流覽大量和大型內容時耗用過多的記憶體。 因此,不會記住從一個流覽到下一個導覽的內容狀態。 不過,WPF 提供數種技術,可讓您針對導覽歷程記錄中的內容儲存狀態片段。

使用 AddBackEntry,您也可以記住單一頁面實例的多個狀態集。

NavigationService 是類別 sealed ,因此無法具現化; NavigationService 而是由導覽器用來啟用導覽。 在 WPF 中,有兩個導覽器: NavigationWindowFrame

以可視化方式,XBAP 會使用 Internet Explorer 作為導覽器,以提供整合式用戶體驗。 不過,實際上,XBAP 實際上會當做導覽器使用 NavigationWindow ; MainWindow 在 Internet Explorer 中執行的 XBAP 屬性會傳回 的參考 NavigationWindow,而 由 NavigationWindow 管理的瀏覽歷程記錄會與 Internet Explorer 所管理的瀏覽歷程記錄整合下列方式:

  • 當透過呼叫 NavigateGoBackGoForward 從 XBAP 內巡覽內容時,相關的瀏覽歷程記錄專案也會新增至 Internet Explorer 瀏覽歷程記錄。
  • 選取 Internet Explorer 流覽 UI 中的專案時,Internet Explorer 會導致 NavigationService 往回巡覽或轉送至與這些專案相關聯的內容。

注意

Frame可以提供自己的瀏覽歷程記錄,或使用裝載導覽器的導覽歷程記錄。 如果 Frame 提供自己的瀏覽歷程記錄,它可以顯示自己的流覽 UI 來巡覽導覽歷程記錄中的專案;這些專案不會新增至主機導覽器的瀏覽歷程記錄 (NavigationWindow、、 Frame瀏覽器) ,因此無法從每個 (的 JournalOwnership 流覽 UI 瀏覽至) 。

如需 XBAP 支援的詳細資訊,請參閱 XBAP) (WPF 瀏覽器裝載應用程式的常見問題

屬性

CanGoBack

取得值,這個值表示向後巡覽記錄中是否至少有一個項目。

CanGoForward

取得值,這個值表示向前巡覽記錄中是否至少有一個項目。

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() 方法,或是當目前的巡覽正在進行,但又要求新的巡覽時,就會發生。

適用於