2011-05-23 66 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