2012-10-04 3 views
2

실제로 얼마나 큰 HTML 조각이 주어진 WebView 안에 있는지 알아낼 수 있어야합니다. 제가 구축하려고하는 프로젝트에 상당히 중요한 요소입니다. 나는 그것이 즉시 가능하지 않다는 것을 안다. 그러나 나는 그것이 사라질 때까지 뷰의 높이를 증가시킬 수 있을지도 모른다 WebView에 스크롤바가 존재 하는지를 결정할 수있다.XAML에서 스크롤을 통해 WebView 높이 검색

이 문제에 대한 의견이 있으십니까? 또는 다른 대안/제안? HTMLAgilityPack (now ported to Metro)을 사용하여 TextBlock을 변환하려고했지만 HTML은 너무 복잡합니다. 당신이 HTML을 제어 할 수있는 경우

+0

html이 얼마나 큰지 미리 알 수 있습니까? – mydogisbox

+0

예. HTML 전자 메일입니다. – roryok

+0

크기가 어느정도인지 알면 고정 된 크기를 지정하는 것이 가장 좋은 이유는 무엇입니까? – mydogisbox

답변

7

,이 자바 스크립트 추가 :

function getDocHeight() { 
    var D = document; 
    return Math.max(
     Math.max(D.body.scrollHeight, D.documentElement.scrollHeight), 
     Math.max(D.body.offsetHeight, D.documentElement.offsetHeight), 
     Math.max(D.body.clientHeight, D.documentElement.clientHeight) 
    ); 
} 

(http://james.padolsey.com/javascript/get-document-height-cross-browser/에서)

을 그리고이 아닌 alert 전화 :

window.external.notify(getDocHeight()); 

그런 다음 ScriptNotify 이벤트를 구현 :

http://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.xaml.controls.webview.scriptnotify.aspx

+0

아, 그래서 자바 스크립트를 HTML에 삽입 한 다음 이벤트를 실행할 수 있습니다. 생각하지 않았어. 나는 그것을 시도하고 당신에게 돌아갈거야 – roryok

+0

그 대답이다. 잘했습니다! 이제 Webview의 높이를 계산하고 설정할 수 있습니다. 높이는 특정 아주 간단한 문서에서 잘못 나오지만 javascript 문제입니다. 감사! – roryok

+0

@roryok 동일한 문제가 있습니다. 신장은 단순한 html에서는 훌륭하지만 다른 사람들에게는 맞습니다. –

0

이것은 좋은 해결책 일 수 있지만 여전히 장치 픽셀 밀도에 문제가 있습니다. WP에서 코드를 실행하면 변환은 다음과 같이 보일 수 있습니다.

private double PixelsToLogicalPixels(double pixels) 
{ 
    var info=Windows.Graphics.Display.DisplayInformation.GetForCurrentView(); 
    return pixels/info.RawPixelsPerViewPixel; 
} 
private double LogicalPixelsToPixels(double pixels) 
{ 
    var info = Windows.Graphics.Display.DisplayInformation.GetForCurrentView(); 
    return pixels * info.RawPixelsPerViewPixel; 
} 
+0

*이 방법이 좋은 해결책 일 수 있습니까? 이것은 다른 대답에 대한 코멘트입니까? 그런 다음 답장을하지 말고 답장하십시오. –

관련 문제