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 傳遞至接受 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 中,有兩個導覽器: NavigationWindow 和 Frame 。
以視覺化方式,XBAP 會使用 Internet Explorer 7 作為導覽器,以提供整合式使用者體驗。 不過,實際上,XBAP 實際上會做 NavigationWindow 為導覽器使用; MainWindow 在 Internet Explorer 7 中執行的 XBAP 屬性會傳回 的 NavigationWindow 參考,而 由 NavigationWindow 管理的流覽歷程記錄會與 Internet Explorer 7 所管理的流覽歷程記錄整合,
呼叫 、 GoBack 和 GoForward 從 XBAP 內流覽 Navigate 內容時,也會將相關的流覽歷程記錄專案新增至 Internet Explorer 7 流覽歷程記錄。
選取 Internet Explorer 7 流覽 UI 中的專案時,Internet Explorer 7 會導致 NavigationService 巡覽回或轉送至與這些專案相關聯的內容。
注意
Frame可以提供自己的流覽歷程記錄,或使用裝載導覽器的導覽歷程記錄。 如果 Frame 提供自己的流覽歷程記錄,它就可以顯示自己的流覽 UI 來流覽流覽歷程記錄中的專案;這些專案不會新增至主機導覽器的流覽歷程記錄 (NavigationWindow 、、 Frame Internet Explorer) ,因此無法從每個 (的 JournalOwnership 流覽 UI 巡覽至) 。
屬性
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() 方法,或是當目前的巡覽正在進行,但又要求新的巡覽時,就會發生。 |
適用於
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應