C# - WP7 WebBrowser导航事件处理程序

时间:2011-11-12 01:19:01

标签: c# windows-phone-7 event-handling browser

我无法弄清楚如何捕获WebBrowser控件上的Navigating事件。基本上我是想弄清楚当用户点击页面上的链接时触发进度条的方式。

这是我用来显示进度条然后在加载页面上隐藏它的代码。有人可以帮我解决导航的事件处理程序吗?

    private void PhoneApplicationPage_Loaded(object sender, RoutedEventArgs e)
    {
        progressBar.IsIndeterminate = true;
        progressBar.Visibility = Visibility.Visible;
        webBrowser.Navigate(new Uri(MY_URL, UriKind.Absolute));
        webBrowser.LoadCompleted += new System.Windows.Navigation.LoadCompletedEventHandler(PageLoadCompleted);
        webBrowser.Navigating = ?
    }
    private void PageLoadCompleted(object sender, System.Windows.Navigation.NavigationEventArgs e)
    {
        progressBar.IsIndeterminate = false;
        progressBar.Visibility = Visibility.Collapsed;
    }

2 个答案:

答案 0 :(得分:1)

您寻求的文档is here。你可以写

webBrowser.Navigating += webBrowser_Navigating;
// ...

void webBrowser_Navigating( object sender, NavigatingEventArgs e )
{
  // ...
}

答案 1 :(得分:0)

VisualStuart的答案帮助我解决了我的问题。

我现在正在使用的代码如下:

private void MyButton1_Click(object sender, RoutedEventArgs e)
{
    MyprogressBar.IsIndeterminate = true;
    MyprogressBar.Visibility = Visibility.Visible;
    string site = MyTextBox1.Text;
    webBrowser1.Navigate(new Uri(site, UriKind.Absolute));
    webBrowser1.Navigating += webBrowser1_Navigating;
    webBrowser1.LoadCompleted += new System.Windows.Navigation.LoadCompletedEventHandler(webBrowser1_LoadCompleted);
}

private void webBrowser1_Navigating(object sender, NavigatingEventArgs e)
{
    MyTextBox1.Text = e.Uri.ToString();
    MyprogressBar.IsIndeterminate = true;
    MyprogressBar.Visibility = Visibility.Visible;
}