在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就根据其内容能自动调整高度了。
?
?