如何重置UWP WebView的内容缩放因子

时间:2017-01-27 13:03:24

标签: javascript c# html uwp

我正在尝试将c#UWP中webview的内容缩放因子重置为1或100%。

我的问题是如何做到这一点?

  • 有没有办法告诉webview本身通过c#缩减回1.0?

喜欢webView.ContentScale = 1.0;

  • 我需要在html中调用什么来告诉它缩放回100%?

就像我这样做来执行点击

webView.InvokeScriptAsync("eval", new string[] { "document.elementFromPoint(" + 555 + ", " + 355 + ").click();" });

如果您知道如何在html / js中重置zoomfactor,它也会对我有所帮助。我会通过评估添加该代码并调用它。

信息:Microsoft Edge渲染引擎用于这些Web视图。

我不想只是重新加载页面,因为可能会有一些用户更改,然后可能会丢失。

来自德国的亲切问候。

1 个答案:

答案 0 :(得分:2)

  

有没有办法告诉webview本身通过c#缩小回1.0?

我担心目前没有这样的方法可以直接设置WebView的内容比例。

  

如果您知道如何在html / js中重置zoomfactor,它也会对我有所帮助。我会通过评估添加该代码并调用它。

正如您所想,我们可以在WebView将加载的页面上添加Javascript函数,并通过InvokeScriptAsync方法调用该函数。我们可以将zoom属性设置为该函数中的样式,以根据需要重置缩放因子。例如,我们将以下HTML加载到WebView,并创建了ZoomFunction

<!DOCTYPE html>

<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="utf-8" />
    <title></title>
    <script type="text/javascript">
        function ZoomFunction(Percentage) {
            var mybody = document.getElementById("mybody");         
            mybody.style.zoom = Percentage + "%";
        }
    </script>
</head>
<body id="mybody" style="margin:0px;padding:0px; overflow:hidden;zoom:50%"> 
      This content is shown for zoom in and out. 
</body>
</html>

这样我们就可以通过调用脚本将内容缩放到100%:

 await MyWebView.InvokeScriptAsync("eval", new string[] { "ZoomFunction(100);" });

更多详情请参阅How to zoom in/out the content in WebView in Universal Windows Platform