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

问题描述 投票:4回答:4

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

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

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

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

非常感谢任何帮助,谢谢。

c# .net winforms internet-explorer webbrowser-control
4个回答
5
投票

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

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

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


3
投票

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

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

注意:决定哪个分辨率正确完全取决于您的客户需求和期望。您可能还希望从一开始就设置正确的期望,以确保在阶段后期不会让客户失望。


3
投票

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

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


2
投票

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

没有正确的解决方法,因为我有三个屏幕,并且都有不同的显示hdpi,我自动获得200%的变焦。所以1个屏幕显示确定,其他2个额外缩放。

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"/>
© www.soinside.com 2019 - 2024. All rights reserved.