通过在XAML中滚动来检测WebView高度

ror*_*yok 3 c# xaml webview microsoft-metro windows-8

我真的需要能够弄清楚给定的HTML内部有多高WebView.这对我正在尝试构建的项目至关重要.我知道这不可能立即实现,但我可以确定WebView上是否存在滚动条我可能会增加视图的高度,直到它消失.

有什么想法吗?或任何替代解决方案/建议?我研究了使用HTMLAgilityPack(现在移植到Metro)将其转换为TextBlock,但HTML太复杂了.

Kie*_*one 8

如果您可以控制HTML,请添加以下javascript:

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)
    );
}
Run Code Online (Sandbox Code Playgroud)

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

并称之为而不是alert:

window.external.notify(getDocHeight());
Run Code Online (Sandbox Code Playgroud)

然后实现ScriptNotify事件:

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