C# 是否可以从webbrowser NavigationFailed事件进行导航?

C# 是否可以从webbrowser NavigationFailed事件进行导航?,c#,windows-phone-8,windows-phone,C#,Windows Phone 8,Windows Phone,这可能吗?我想转到上一个xaml页面,而不是网页 提前谢谢。我已经尝试了你的代码,它运行正常。您可以在NavigationFailedEvent中导航-问题是您永远无法到达那里 正如我所尝试的,这个问题主要与Emulator有关——可能是由于internet连接是如何实现的。例如: private void webBrowser_NavigationFailed(object sender, NavigationFailedEventArgs e) { Debug.Wri

这可能吗?我想转到上一个xaml页面,而不是网页


提前谢谢。

我已经尝试了你的代码,它运行正常。您可以在NavigationFailedEvent中导航-问题是您永远无法到达那里

正如我所尝试的,这个问题主要与Emulator有关——可能是由于internet连接是如何实现的。例如:

private void webBrowser_NavigationFailed(object sender, NavigationFailedEventArgs e)
    {
        Debug.WriteLine("Navigation Failed");

        if (!Utils.IsNetworkAvailable())
        {
            MessageBoxResult result = MessageBox.Show("Please go to Settings and enable your network connection.",
                                                 "No network connection", MessageBoxButton.OK);

            if (result == MessageBoxResult.OK)
            {                    
                Dispatcher.BeginInvoke(() => 
                    NavigationService.Navigate(new Uri("/TutorialPage.xaml", UriKind.Relative))); //TODO: Doesnt work
            }
        }
}
这个导航在我的模拟器上没有失败(我被重定向到了某个地方),但是我在设备上测试了它——它失败了

所以,尝试在设备上测试你的应用程序。但在我看来,在导航(加载Webbrowser)之前检查互联网连接比等待导航失败要好得多(这可能是额外的检查)


另外,当代码在主线程上运行时,您不需要通过Dispatcher进行导航。

您是遇到了错误,还是根本不起作用?根本不起作用。不进行导航失败的事件参数是否具有可设置为true的e.Handled属性?试试看,好吧,我看你提到了那不起作用。很抱歉。如果您在webBrowser_NavigationFailed方法中放置断点,它是否会被命中?是的,它会到达Dispatcher.BeginInvoke(()=>NavigationService.Navigate(新Uri(“/TutorialPage.xaml”,UriKind.Relative));这是否也是通过查看您的代码来模拟失败,我还能够验证NavigationFailed处理程序中的导航是否正常工作。@EricScherrer我花了一点时间来模拟emulator上的失败;)甚至飞机模式也没用。我在导航之前就这么做了
web.Navigate(new Uri(@"http://nosite.azd", UriKind.Absolute));