C# WebBrowser控件调整大小

C# WebBrowser控件调整大小,c#,.net,winforms,resize,webbrowser-control,C#,.net,Winforms,Resize,Webbrowser Control,我的表单中有一个WebBrowser,它访问的网站太宽,无法控制。我想知道是否有一种方法来调整控件的大小,以适应网站。这似乎很简单,但我还没有找到办法。我知道如何调整控件的大小,我只需要找到网站的宽度。就像在safari中按下绿色按钮一样,它会自动将窗口调整到正确的大小。 第一步是看看是否可以调整控件的大小 第二步是看看你是否能找到网站想要的大小 第三步是将该大小或最大屏幕大小(以较小者为准)减去任何chrome,然后将控件调整为该大小 您的最佳选择可能是让WebBrowser从一开始就在表单上

我的表单中有一个WebBrowser,它访问的网站太宽,无法控制。我想知道是否有一种方法来调整控件的大小,以适应网站。这似乎很简单,但我还没有找到办法。我知道如何调整控件的大小,我只需要找到网站的宽度。就像在safari中按下绿色按钮一样,它会自动将窗口调整到正确的大小。

  • 第一步是看看是否可以调整控件的大小
  • 第二步是看看你是否能找到网站想要的大小
  • 第三步是将该大小或最大屏幕大小(以较小者为准)减去任何chrome,然后将控件调整为该大小

您的最佳选择可能是让WebBrowser从一开始就在表单上使用尽可能多的空间(Dock.Fill),因此,如果用户全屏最大化应用程序,他们会获得足够的空间,如果他们希望较小的站点使用较小的空间,他们可以根据自己的意愿调整应用程序的大小。这就是所有浏览器的工作方式。

您应该能够访问WebBrowser文档的大小,并通过WebBrowser.Document.Window.size获取其大小

我将使用WebBrowser控件的DocumentCompleted事件等待页面加载,然后使用调整大小代码以此大小调整webControl容器的大小

Private Sub WebBrowser1_DocumentCompleted(sender As Object, e As WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted
        WebBrowser1.Size = WebBrowser1.Document.Body.ScrollRectangle.Size
    End Sub

回答:使用
WebBrowser.Document.Body.ScrollRectangle.Size
而不是
WebBrowser.Document.Window.Size
。对我来说,工作很有魅力。

我知道如何调整控件的大小,我只需要获得网站的宽度就可以了。第二步。不幸的是,我不知道怎么做!抱歉。如果启用,请不要忘记允许滚动条。由于移动到Windows 10,使用
ScrollRectangle
似乎无法准确设置
WebBrowser
控件大小(我最终使用滚动条)。如果我找到了可靠的解决方案,我会发帖的。
var webBrowser = new WebBrowser();
// the magic!!!
webBrowser.Dock = DockStyle.Fill;
form.get_Controls().Add(webBrowser);
webBrowser.Navigate('http://a.com/');