2011-11-12 4 views
1

WebBrowser 컨트롤에서 Navigating 이벤트를 잡는 방법을 알아낼 수 없습니다. 기본적으로 사용자가 페이지의 링크를 클릭 할 때 진행률 막대를 표시하는 방법을 파악하려고합니다.WP7 WebBrowser 탐색 이벤트 처리기

다음은 진행률 표시 줄을 표시하고로드 된 페이지에서 숨기는 코드입니다. 누군가가 내비게이션을위한 이벤트 핸들러를 도와 줄 수 있습니까?

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; 
    } 

답변

1

is here을 찾는 설명서. 쓸 수 있습니다

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

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

완벽한 감사 !!!! – Joe

+0

다소 늦었지만 다음과 같아야합니다. + = new EventHandler (webBrowser_Navigating); – jyavenard

+0

@jyavenard, 실제로는 아니요, EventHandler <>를 명시 적으로 설명 할 필요는 없습니다. C# 컴파일러가이를 작성할 것입니다. 대리인이 될 수있는 다른 유형 (다른 유형 없음)이 없기 때문에 그렇게 할 수 있습니다. 다른 모든 것들은 평등하므로 언제나 적은 양의 코드를 작성하여 내 의도가 명확하고 여분의 혼란에 빠지지 않습니다. –

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; 
}