我正在尝试将 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 中放大/缩小内容。