缩放内容以适合 UWP WebView

2024-03-08

我正在尝试在 UWP 应用程序内的 XAML-WebView 控件中实现缩放到内容适合功能。作为半官方的缩放解决方案 https://code.msdn.microsoft.com/windowsapps/How-to-zoom-inout-the-5a42229b似乎正在使用 JavaScript,我的方法是动态设置zoombody 元素的 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无论窗口大小如何,因此都应该正确计算缩放系数。


该方法实际上效果很好,我不知何故只是愚蠢地交换了document.body.style.zoom with document.body.zoom这当然不会被 Edge 解释。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

缩放内容以适合 UWP WebView 的相关文章

随机推荐

  • Android 证书已过期

    目前 我在签署我的应用程序时收到一条错误消息 指出证书已过期 不是调试证书 我知道这令人惊讶 因为 Android 证书应该可用很多年 我无法创建新证书 因为在 PlayStore 上更新我的 apk 时出现错误 apk 的证书必须与前一个
  • Excel SpillParent 和 SpillingToRange 难度

    我正在尝试使用 SpillParent and SpillingToRange在某些 UDF 中的 Excel 中的 Range 对象上 当该范围不在调用 UDF 的同一工作表上时 会出现意外行为 我知道如果我使用 溢出运算符 我不需要这样
  • `npm install` 在 node-gyp 重建上失败,并显示“gyp:未检测到 Xcode 或 CLT 版本!”

    每次我尝试npm install 我收到以下错误 我如何解决它 gyp No Xcode or CLT version detected I am on node v v8 8 0 npm v v6 11 3 我尝试在 VSCode 终端和
  • sbt - 对象 apache 不是包组织的成员

    我想使用 sbt 部署并提交 Spark 程序 但它抛出错误 Code package in goai spark import org apache spark SparkContext SparkConf object SparkMeA
  • Laravel 中添加路由名称前缀而不添加 URI 前缀

    我有两个命名空间 Front and Admin For Admin 名称空间 可以将所有路径添加为前缀admin conrtoller action 但对于 Front 我想要有前缀的路由名称而不带前缀 URI Route group a
  • Facebook API - 权限错误

    有人知道 Facebook API 错误的原因是什么吗 当用户通过 feed 调用发帖时 有时会出现这种情况 error message Permissions error type FacebookApiException code 20
  • 如何限制激励视频广告长度 (admob)?

    我的应用程序使用激励视频广告 但在我看来 有时广告太长 如何设置广告时长限制 这不是 AdMob 提供的功能 不过 感觉太长的广告通常会收到较少的点击次数 因此随着系统的调整 显示的频率会越来越低
  • Nhibernate 对 select 进行更新?

    我有以下课程 public class Product public virtual Guid Id get set public virtual string Name get set public virtual Decimal Pri
  • java.lang.IllegalStateException:保存状态失败:活动已清除片段中的索引

    首先 我的应用程序的结构如下 SpashActivity gt MainActivity gt switching between many fragments 我的应用程序使用幻灯片菜单 https github com jfeinste
  • 将 Numpy 数组“转换”为 Matlab,反之亦然

    我正在寻找一种将 NumPy 数组传递给 Matlab 的方法 我已经成功地通过使用将数组存储到图像中来做到这一点scipy misc imsave然后使用加载它imread 但这当然会导致矩阵包含 0 到 256 之间的值 而不是 真实
  • 向用户报告进度时如何编写最简洁的代码?

    在过去的几个月里 我一直在努力想出一些干净的代码来向用户报告进度 一切似乎总是归结为 ReportProgress Starting Task 1 doTask1 ReportProgress Task 1 is done ReportPr
  • WPF DataGrid 控件模板

    我正在尝试自定义 WPF 4 0 DataGrid 并需要其控件模板的列表 也是嵌套 DataGridColumnHeadersPresenter PART ColumnHeadersPresenter 的控件模板 我发现this http
  • php pdo 绑定参数不起作用[重复]

    这个问题在这里已经有答案了 我正在使用以下 php pdo 代码将数据插入 mysql 数据库 插入成功 但是 更新的数据库将字符串文字 a b 显示为各自字段中的值 怎么了 data array array a gt John b gt
  • 使用谷歌移动视觉 API 检测第一个条形码并将数据发送到另一个活动

    您好 我在 github 上检查了来自 google 的条形码阅读器示例 我试图让条形码检测器检测第一个条形码 只有一个 当它检测到时 它将解码的条形码发送到另一个活动 Mabye 我错了 但我需要输入这段代码 BarcodeGraphic
  • onConnectionFailed 给出 SIGN_IN_REQUIRED(4)

    我正在开发一个 Android 应用程序 我想在其中使用 Google API 为此我导入了谷歌播放服务库项目 我正在关注这个link https developers google com mobile android getting s
  • 将 string 转换为 unsigned int 返回错误的结果

    我有以下字符串 sThis 2154910440 unsigned int iStart atoi sThis c str 然而结果是 iStart 2147483647 有人看到我的错误吗 atoi将字符串转换为int 在您的系统上 in
  • 在 Windows 10 上的 WSL 终端中禁用蜂鸣声 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 如何在 Windows 10 上的 WSL 中禁用视觉和音频铃声 蜂鸣声 禁用蜂鸣声bash您需要取消注释 或添加 如果尚未存在 该行se
  • Safari:flexbox 和最小高度

    我需要一个带有 Flexbox 子项的滚动 Flexbox 容器 容器有一个 由 flexbox 定义的高度 子级应该和它们的内容一样高 这在 Safari 中效果很好 在 Safari 中 子级不会超出容器的高度 实际上 Safari 中
  • 是否可以在React应用程序中忽略fetch api的ssl验证?

    我在 React 单页应用程序中使用 fetch API 并且需要访问自签名的 https 微服务 由于 SSL 验证而失败 是否可以忽略验证 以及如何做呢 不 此错误来自您的浏览器 在 JavaScript 中无法避免 您必须将自签名证书
  • 缩放内容以适合 UWP WebView

    我正在尝试在 UWP 应用程序内的 XAML WebView 控件中实现缩放到内容适合功能 作为半官方的缩放解决方案 https code msdn microsoft com windowsapps How to zoom inout t