c# - Windows 窗体 Web 浏览器控制缩放级别
问题描述
我正在使用 Web 浏览器控件在我的应用程序中显示一些即时生成的 HTML 文档。
问题是,在我的机器上说文件显示有点放大。在其他同事的电脑上,一切看起来“正常”。它必须是某种本地设置,但我找不到在哪里更改它。
我可以 CTRL + 滚轮缩小,但不保留缩放级别。据我所知,没有简单的方法来以编程方式设置预定义的缩放级别。
这可能是一个长镜头,但我担心它与 Internet Explorer(我从不使用)及其设置有关。不幸的是,更改控件类型不是一个可行的选择。
任何帮助将不胜感激,谢谢。
解决方案
问题是,在我的机器上说文件显示有点放大。
Internet Explorer 尊重 Windows 比例设置。因此,您在WebBrowser
具有缩放 100 的系统上看到的大小与您在WebBrowser
具有缩放 150 的系统上看到的大小不同,而两个WebBrowser
控件都设置为 100% 缩放。
原因是因为缩放。缩放因子与 Windows 缩放因子除以 100 或 相同physicalScreenHeight/logicalScreenHeight
。
据我所知,没有简单的方法来以编程方式设置预定义的缩放级别。
事实上有。要更改 Web 浏览器控件的缩放级别,您可以IWebBrowser2
从属性中获取实例WebBrowser.ActiveXInstance
,然后使用其ExecWB
方法,以这种方式设置缩放:
int OLECMDID_OPTICAL_ZOOM = 63;
int OLECMDEXECOPT_DONTPROMPTUSER = 2;
dynamic iwb2 = webBrowser1.ActiveXInstance;
object zoom = 200; //The value should be between 10 , 1000
iwb2.ExecWB(OLECMDID_OPTICAL_ZOOM, OLECMDEXECOPT_DONTPROMPTUSER, zoom, zoom);
您还可以添加对方法的引用Microsoft Internet Controls (SHDocVw.dll)
、强制WebBrowser.ActiveXInstance
转换SHDocVw.WebBrowser
和使用ExecWB
方法。但是上面的代码没有添加任何引用就可以解决问题。
Web 浏览器缩放与 CSS3 缩放完全不同。但是您可能想知道如何设置文档正文缩放:webBrowser1.Document.Body.Style = "zoom:200%";
以上所有代码都应在文档完成后运行。
推荐阅读
- javascript - 删除请求不起作用
- r - 将使用 mutate_ 创建的新变量分配给将在 dplyr 中作为字符串传递的名称
- shell - 如何在终端默认输出中添加“回声”
- typescript - Typescript“匿名”类型定义的正确名称是什么?
- three.js - Threejs通过UV贴图添加teture后将部分Object3ds面导出为图像
- php - 异步php循环
- android - 如何通过android客户端中的特定端口连接到java服务器?
- python - 抓取小部件
- css - 将不同引导列的子元素设置为相同的高度
- python - 在外部扩展系统路径,如 PyCharm