2013-07-17 4 views
0

내가 지금처럼 웹 브라우저 컨트롤에 문자열을로드 해요 :WebBrowser 컨트롤 및 loadfinish

ArticleContent.NavigateToString("<p style='font-size:20px; font-weight:bold;'>" +article.Title + "</p><br/>" + article.Text); 

article.Title 및 article.Text는 HTML 문자열입니다.

그래서, 내가 로딩 아이콘 표시하기 위해 노력하고있어이 페이지를 탐색 할 때 :

ArticleContent.NavigateToString("<p style='font-size:20px; font-weight:bold;'>" + article.Title + "</p><br/>" + article.Text); 
loadingIcon.Visibility = Visibility.Collapsed; 

문제 :

LoadingIcon.Visibility = Visibility.Visible; 

그런 다음 웹 브라우저 컨트롤에 데이터를로드 한 후 내가로드 아이콘을 사용하지 않도록 설정을 로드 아이콘이 WebBrowser 콘텐트 쇼보다 이전에 비활성화되는 것입니다. 콘텐츠로드 또는 뭔가 ...에 처리 할 수있는 이벤트가 있습니까

편집 :

이벤트 탐색이 작동하지만, 약간의 지연도있다 ...

+1

당신은'LoadCompleted' 이벤트를 시도 했습니까? myBrowser.LoadCompleted + = (s, e) => loadingIcon.Visibility = Visibility.Collapsed;'? – dkozl

+0

@dkozl'LoadCompleted'는 XAML 컨트롤의 이벤트이지만 HTML이 렌더링 된시기를 알고 싶습니다. –

답변

1

닷넷 코드를 직접 할 수 없습니다 임베디드 브라우저가 내용 렌더링을 완료하면 알 수 있습니다.

전체 HTML 문서를 렌더링 한 경우 DOM에서 onload 이벤트를 사용하여 렌더링이 완료된 것을 알 수 있습니다. 그런 다음 window.external.Notify()을 사용하여 .net 코드를 다시 호출하여 컨트롤의 가시성을 변경하는 함수를 실행할 수 있습니다.
다소 길어졌지만 콘텐츠가 렌더링되기 전에 컨트롤이 표시되지 않도록합니다.