我正在尝试在 UWP 应用程序内的 XAML-WebView 控件中实现缩放到内容适合功能。作为半官方的缩放解决方案 https://code.msdn.microsoft.com/windowsapps/How-to-zoom-inout-the-5a42229b似乎正在使用 JavaScript,我的方法是动态设置zoom
body 元素的 CSS 属性。
现在的问题是找到正确的缩放系数。
根据文档,WebView 在文档模式下使用 Edge 浏览器。
然而,在 Edge 中,我发现document.body.clientWidth
-property 始终返回文档宽度,无论窗口大小甚至缩放系数如何。因此,我使用设置缩放系数
document.body.style.zoom = (window.innerWidth * 100 / document.body.clientWidth) + '%'
这适用于设置为 IE10 文档模式的桌面 IE11、Edge 以及一系列其他浏览器(例如 Chrome),基本上是我测试过的所有浏览器。但是,它不适用于WebView
-control 应该在 Windows 10 UWP 应用程序中使用 Edge(感谢 Jay Zuo 的更新)。
问题是在WebView
控制,document.body.clientWidth
一旦设置,总是与window.innerWidth
这样得到的缩放系数总是100%
,这是错误的。每当用户调整窗口大小时,我想重新调整显示的页面。
有谁知道可以使用什么替代属性来获取首选文档宽度WebView
控制?
Edit:我想要放大的网页的最小示例如下:
演示.html:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<meta charset="utf-8">
<title>Demo</title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<div id="container">
</div>
</body>
</html>
样式.css:
@charset "utf-8";
body {
background-color: #FFF;
margin-left: 0px;
margin-top: 0px;
margin-right: 0px;
margin-bottom: 0px;
overflow: hidden;
width: 102px;
height: 76px;
}
#container {
position: relative;
width: 102px;
height: 76px;
padding-top: 0px;
background-color: blue;
background-size: 102px;
background-repeat: no-repeat;
}
该网页仅由一个蓝色框组成。我想要一种方法来缩放该框以适应,即设置缩放系数以使蓝色框填充屏幕。但对于这个页面,Edge 确实返回了body.clientWidth=102
无论窗口大小如何,因此都应该正确计算缩放系数。