我正在尝试将c#UWP中webview的内容缩放因子重置为1或100%。
我的问题是如何做到这一点?
喜欢webView.ContentScale = 1.0;
或
就像我这样做来执行点击
webView.InvokeScriptAsync("eval", new string[] { "document.elementFromPoint(" + 555 + ", " + 355 + ").click();" });
或
如果您知道如何在html / js中重置zoomfactor,它也会对我有所帮助。我会通过评估添加该代码并调用它。
信息:Microsoft Edge渲染引擎用于这些Web视图。
我不想只是重新加载页面,因为可能会有一些用户更改,然后可能会丢失。
来自德国的亲切问候。
答案 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。