我正在使用web浏览器控件在应用程序中显示一些动态生成的html文档。
问题是,在我的机器上说文件是放大显示的。在其他同事的电脑上,一切看起来“正常”。它一定是某种本地设置,但我找不到哪里可以更改它。
我可以按ctrl+scroll-wheel进行缩小,但不保留缩放级别。据我所见,没有简单的方法可以通过编程设置预定义的缩放级别。
这可能是一个漫长的过程,但我担心这与Internet Explorer(我从未使用过)及其设置有关。不幸的是,更改控件类型不是一个可行的选项。
任何帮助都将非常感谢,谢谢。

最佳答案

问题是,在我的机器上说文件被放大了
在。
Internet Explorer遵循Windows比例设置。因此,您将在具有缩放100的系统上的WebBrowser控件上看到的大小与在具有缩放150的系统上的WebBrowser控件上看到的大小不同,而两个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%";
所有上述代码应在文档完成后运行。

关于c# - Windows窗体Web浏览器控件缩放级别,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52217916/

10-11 03:44
查看更多