Windows窗体Web浏览器控件缩放级别

时间:2018-09-07 07:56:27

标签: c# .net winforms internet-explorer webbrowser-control

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

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

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

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

我们将不胜感激,谢谢。

4 个答案:

答案 0 :(得分:5)

  

问题是,在我的机器上说文档显示得有些缩放   内。

Internet Explorer遵守Windows缩放比例设置。因此,在缩放比例为100的系统上,您在WebBrowser控件上看到的大小不同于在缩放比例为150的系统上,在WebBrowser控件上看到的大小,而{{1 }}控件设置为100%缩放。

原因是由于缩放。缩放系数与Windows缩放系数除以100或WebBrowser相同。

  

据我所知,没有简单的方法来设置预定义的缩放比例   以编程方式进行操作。

实际上有。要更改Web浏览器控件的缩放级别,可以从IWebBrowser2属性中获取WebBrowser.ActiveXInstance实例,然后使用其ExecWB方法,以这种方式设置缩放比例:

physicalScreenHeight/logicalScreenHeight

您还可以添加对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方法。但是上面的代码在没有添加任何引用的情况下可以达到目的。

Web浏览器缩放与CSS3缩放完全不同。但是您可能想知道如何设置文档正文缩放:ExecWB

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

答案 1 :(得分:3)

问题出在屏幕分辨率上。您的屏幕的分辨率设置较低,而同事的屏幕设置的分辨率高于您的分辨率。

将屏幕分辨率更改为与同事的屏幕分辨率相同,反之亦然,您应该会看到问题已解决。

  

注意:决定哪种解决方案正确的决定完全取决于客户的需求和期望。您可能还希望一开始就设定正确的期望,以确保在此阶段的后期不会让客户失望。

答案 2 :(得分:3)

可能是显示器缩放了吗? (假设为Win 10,但旧版本必须非常相似)

桌面,上下文菜单->显示设置->在“缩放和布局”下,您的值是否设置为高于100%?

答案 3 :(得分:2)

它的Windows 10发布使所有HDPI设备自动达到200%缩放级别。 首先,右键单击桌面上的任何空白区域,然后选择上下文菜单底部的“显示设置”。或者,您可以转到开始>设置>系统>显示。 Windows 10中的“设置”应用程序可用于按显示器缩放。

没有适当的解决方法,因为我有三个屏幕,并且每个显示器的hdpi不同,并且自动获得200%缩放。因此,其中一个屏幕显示正常,其他两个屏幕则被放大。

window.onload = function() {
var currFFZoom = 1;
var currIEZoom = 100;

$('#In').on('click',function(){
    if (navigator.userAgent.indexOf('Firefox') != -1 && parseFloat(navigator.userAgent.substring(navigator.userAgent.indexOf('Firefox') + 8)) >= 3.6){//Firefox
        var step = 0.02;
        currFFZoom += step; 
        $('body').css('MozTransform','scale(' + currFFZoom + ')');
    } else {
        var step = 2;
        currIEZoom += step;
        $('body').css('zoom', ' ' + currIEZoom + '%');
    }
});

$('#Out').on('click',function(){
    if (navigator.userAgent.indexOf('Firefox') != -1 && parseFloat(navigator.userAgent.substring(navigator.userAgent.indexOf('Firefox') + 8)) >= 3.6){//Firefox
        var step = 0.02;
        currFFZoom -= step;                 
        $('body').css('MozTransform','scale(' + currFFZoom + ')');

    } else {
        var step = 2;
        currIEZoom -= step;
        $('body').css('zoom', ' ' + currIEZoom + '%');
    }
});};


<input type="button" id="Out" alt="Zoom Out"/>
<input type="button" id="In" alt="Zoom In"/>