我正在使用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/