在WP中使用WebBrowser时,如果我们将在Xaml中将其高度设为"Auto",你将会发现内容不会被显示出来。 那么怎么样才能做到使其高度能够随内容高度变化而变化呢?下面将会简要列出其方法。
?
1.?确保将WebBrowser的IsScriptEnabled属性设为true;
2.?为控件添加ScriptNotify事件处理方法:
private void ReadWebView_ScriptNotify(object sender, NotifyEventArgs e)
{
WebBrowser thisBrowser = (WebBrowser)sender;
int height = Convert.ToInt32(e.Value);
double newHeight = height * 1.5;
thisBrowser.Height = newHeight;
}
3.?确保Xaml中WebBrowser的height属性至少为1px,不能为Auto或0;
4. 在调用NavigateToString前确保在要显示的HTML内容中添加如下代码:
?
"<script type=\"text/javascript\">
window.onload = function () {
var elem = document.getElementById('readabilityBody');
window.external.Notify(elem.scrollHeight + '');
}
</script>"
注: 'readabilityBody' 为HTML元素容器ID。
?
如此这般,你的WebBrowser就根据其内容能自动调整高度了。
?
?