首页 > 解决方案 > Windows 窗体 Web 浏览器控制缩放级别

问题描述

我正在使用 Web 浏览器控件在我的应用程序中显示一些即时生成的 HTML 文档。

问题是,在我的机器上说文件显示有点放大。在其他同事的电脑上,一切看起来“正常”。它必须是某种本地设置,但我找不到在哪里更改它。

我可以 CTRL + 滚轮缩小,但不保留缩放级别。据我所知,没有简单的方法来以编程方式设置预定义的缩放级别。

这可能是一个长镜头,但我担心它与 Internet Explorer(我从不使用)及其设置有关。不幸的是,更改控件类型不是一个可行的选择。

任何帮助将不胜感激,谢谢。

标签: c#.netwinformsinternet-explorerwebbrowser-control

解决方案


问题是,在我的机器上说文件显示有点放大。

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%";

以上所有代码都应在文档完成后运行。


推荐阅读