如何重置 UWP Web 视图的内容缩放因子



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

我的问题是怎么做?

  • 有没有办法告诉 WebView 本身通过 C# 缩减到 1.0?

喜欢webView.ContentScale = 1.0;

  • 我必须在 HTML 中调用什么才能告诉它缩放回 100%?

就像我会这样做来执行点击一样

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

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

信息:Microsoft边缘呈现引擎用于这些 Web 视图。

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

来自德国的亲切问候。

有没有办法告诉 WebView 本身通过 C# 缩减到 1.0?

恐怕目前还没有这样的方法可以直接设定WebView的内容尺度。

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

正如你所想的,我们可以在WebView将加载的页面上添加一个 Javascript 函数,并通过InvokeScriptAsync方法调用该函数。 我们可以在该函数中将缩放属性设置为样式,以根据需要重置缩放系数。例如,我们有以下 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);" });

更多详细信息请参阅如何在通用 Windows 平台的 WebView 中放大/缩小内容。