how to determine when navigationwindow back button is pressed and trap that event to something extra. I am thinking of managing the page state.
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
回答1:
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.
回答2:
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