detect navigationwindow go back event

2019-09-04 10:42发布

how to determine when navigationwindow back button is pressed and trap that event to something extra. I am thinking of managing the page state.

2条回答
老娘就宠你
2楼-- · 2019-09-04 11:09

The NavigationService provides a number of events you can subscribe to, if you want to control the navigation process:

  • Navigating, when the frame is about to navigate. Set Cancel to true to stop.
  • Navigated, when navigation has finished but before it is rendered
  • NavigationFailed, when something goes wrong
  • NavigationProgress, when chunks of a remote navigation call are being downloaded.
  • NavigationStopped, when the StopLoading method is called or a new Navigate request is made during downloading
  • LoadCompleted, when the page has been rendered
查看更多
三岁会撩人
3楼-- · 2019-09-04 11:23

Add a handler to either NavigationWindow.Navigating or NavigationService.Navigating. In your handler:

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

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

The NavigatingCancelEventArgs contains all of the information about the navigation request you'll need to manage page state.

查看更多
登录 后发表回答