2011-05-23 101 views
3

我想根據內容高度動態設置WebBrowser控件的高度。Windows Phone 7 WebBrowser內容高度

我的方案是:在該特定視圖上,我具有不同的元素 - 圖像,MediaElement等,以及在該WebBrowser控件中呈現的那些豐富文本之間。爲了實現統一滾動,我將所有內容都包含在滾動視圖中,並禁用了滾動瀏覽器控件。

目前我有一個JavaScript方法,當主體完成加載並將高度信息發送到C#代碼隱藏但被計算的高度不正確時被調用。

我的黑客今天是基本上乘以返回值約1.75

在頁頭,我有以下meta標籤:

<meta charset='Windows-1257'> 
<meta name='viewport' content='width=device-width' /> 
<meta name='viewport' content='user-scalable=no' /> 
<meta name='viewport' content='initial-scale = 1.0' /> 
<meta name='HandheldFriendly' content='true' />" 
<meta name='target-densitydpi=device-dpi' /> 

這是我body標籤。

<body onLoad="SendDataToPhoneApp()" style="margin:0px;padding:0px;"> 

JavaScript功能:

<script> 
    function getDocHeight() { 
     return document.getElementById('pageWrapper').offsetHeight; 
    } 
    function SendDataToPhoneApp() { 
     window.external.Notify('' + getDocHeight()); 
    } 
</script> 

pageWrapperbody直接孩子。

+0

它看起來像你試圖解決這個問題的答案建議aproach:http://stackoverflow.com/questions/4684307/any-way-to-set-the-wp7-webbrowser-control-height-動態鎖定滾動 我建議嘗試'document.body.clientHeight'。我不知道您使用的是「pageWrapper」的標識。如果您可以提供更多關於您獲得的身高值的詳細信息以及您期望的值,將會對您有所幫助。哪個元素上有'pageWrapper'標識? 另外,我很好奇你的情況。爲什麼要將WebBrowser高度設置爲內容高度? – Skeets 2011-05-25 18:56:39

回答

4

嘗試在您的Javascript中使用document.body.clientHeight。如果你在WebBrowser內部構建所有東西,你也可能會有更好的運氣。您可以將圖像放入HTML中,您可以爲MediaElement放置一個靜止幀佔位符圖像,然後調用C#並在需要時彈出一個真正的MediaElement。

+0

那麼這是一種解決方案,我將它標記爲一個正確的答案,但我仍然不知道爲什麼offsetHeight的值是不正確的。 – texmex5 2011-06-04 12:07:02

+1

我也不知道。這些網頁與您的問題沒有直接關係,但您可能會發現它們會對您有幫助的背景信息(第二個是我建議您使用body.clientHeight的原因)http://windowsteamblog.com/windows_phone/b/wpdev/archive/ 2011/03/14/managing-the-windows-phone-browser-viewport.aspx,http://www.quirksmode.org/mobile/viewports2.html – Skeets 2011-06-06 21:17:26