我真的需要能够计算出给定的WebView
中的HTML片段的高度。这对我正在尝试构建的项目非常重要。我知道这不是立即可能的,但我可以确定WebView上是否存在滚动条,我可能会增加视图的高度直到它消失。通过在XAML中滚动检测WebView高度
对此有何看法?或者有其他解决方案/建议?我考虑使用HTMLAgilityPack(现在的ported to Metro)将它转换为TextBlock,但HTML太复杂了。
我真的需要能够计算出给定的WebView
中的HTML片段的高度。这对我正在尝试构建的项目非常重要。我知道这不是立即可能的,但我可以确定WebView上是否存在滚动条,我可能会增加视图的高度直到它消失。通过在XAML中滚动检测WebView高度
对此有何看法?或者有其他解决方案/建议?我考虑使用HTMLAgilityPack(现在的ported to Metro)将它转换为TextBlock,但HTML太复杂了。
如果你有过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)
);
}
(从http://james.padolsey.com/javascript/get-document-height-cross-browser/)
并称之为而非alert
:
window.external.notify(getDocHeight());
然后实现ScriptNotify
事件:
这可能是一个很好的解决方案,但设备像素密度仍然存在问题。如果您在WP上运行您的代码,转换可能如下所示:
private double PixelsToLogicalPixels(double pixels)
{
var info=Windows.Graphics.Display.DisplayInformation.GetForCurrentView();
return pixels/info.RawPixelsPerViewPixel;
}
private double LogicalPixelsToPixels(double pixels)
{
var info = Windows.Graphics.Display.DisplayInformation.GetForCurrentView();
return pixels * info.RawPixelsPerViewPixel;
}
*这可能是一个很好的解决方案?这是对其他答案的评论吗?然后让它成为评论,而不是回答。 –
您是否碰巧知道您的html会提前多久? – mydogisbox
是的。这是HTML电子邮件 – roryok
如果你知道它有多大,为什么不给它一个固定的大小? – mydogisbox