簡體   English   中英

檢測導航窗口返回事件

[英]detect navigationwindow go back event

如何確定何時按下導航窗口后退按鈕並將該事件捕獲到額外的東西。 我正在考慮管理頁面狀態。

將處理程序添加到NavigationWindow.NavigatingNavigationService.Navigating 在你的處理程序中:

void NavigationService_Navigating(object sender, NavigatingCancelEventArgs e)
{
    if (e.NavigationMode == NavigationMode.Back) {
        e.Cancel = true;

        // TODO: whatever state management you're going to do
    }
}

Ps 您需要注冊導航服務。 在我的代碼中,它在頁面構造函數上不起作用,因為導航服務仍然為空。 所以我將 Loaded="page_Loaded" 添加到 XAML 頁面標記並將其分配到那里:

bool _navigationServiceAssigned = false;
private void page_Loaded(object sender, RoutedEventArgs e)
{
    if (_navigationServiceAssigned == false)
    {
        NavigationService.Navigating += NavigationService_Navigating;
        _navigationServiceAssigned = true;
    }
}

NavigatingCancelEventArgs包含管理頁面狀態所需的有關導航請求的所有信息。

NavigationService提供了一些你可以訂閱的事件,如果你想控制導航過程:

  • 導航,當框架即將導航時。 將 Cancel 設置為 true 以停止。
  • 已導航,當導航完成但在呈現之前
  • NavigationFailed,當出現問題時
  • NavigationProgress,當正在下載遠程導航調用的塊時。
  • NavigationStopped,當調用 StopLoading 方法或下載過程中有新的 Navigate 請求時
  • LoadCompleted,當頁面已經呈現

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM