如何更改WinRT Webview的缩放级别?
如果我给它焦点,我可以使用键盘CTRL+ +
和CTRL+ -
进行放大/缩小
但这可以通过代码完成吗?
注意:将WebView放在ScrollViewer中,让缩放,不是我想要的。
答案 0 :(得分:2)
不幸的是,我认为在托管代码中没有办法直接。但是,如果您拥有内容或者可以注入一些css / script,则有一种解决方法。
在您的HTML中,添加此css:
<style type="text/css">
body
{
zoom:100%;
}
</style>
在您的HTML中还包含一个这样的脚本块:
function setZoomLevel(newZoom) {
document.styleSheets[0]['rules'][0].style['zoom'] = newZoom;
}
在您的C#代码中,添加一个辅助方法:
private void SetZoomLevel(int level)
{
string slevel = string.Format("{0}%", level);
webBrowser.InvokeScript("setZoomLevel", slevel);
}
在C#代码中,您现在可以通过调用以下方式调整缩放级别:
SetZoomLevel(200);
这是我能找到的最好的,不幸的是,如果你不能注入一个样式和一些脚本,它就不起作用。
注意:虽然这会缩放内容的方式与调整缩放滑块非常相似,但缩放滑块在桌面浏览器中不受影响。因此,如果您调用上面的 SetZoomLevel(200); ,然后将滑块设置为200%,您实际上会看到400%。这应该不是WebView中的问题,因为 没有滑块。
希望有人能找到更好的答案。
答案 1 :(得分:0)
Magnus,出于好奇,为什么ScrollViewer解决方案不适合你呢?