WebBrowser控件调整大小

5

我在表单中拥有一个WebBrowser,用于访问一个宽度超出控件范围的网站。我想知道是否有一种方法可以调整控件大小以适应网站。这似乎很简单,但我还没有找到方法。我知道如何调整控件大小,只需要找到网站的宽度。就像在safari中按下绿色按钮自动调整窗口大小一样。

5个回答

3
你应该能够通过WebBrowser.Document.Window.Size访问WebBrowser文档的大小并获取其大小。
我建议使用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

不要忘记考虑滚动条是否启用。 - SteveCinq
自从升级到Windows 10后,使用ScrollRectangle似乎无法准确设置WebBrowser控件的大小(最终会出现滚动条)。如果我找到可靠的解决方案,我会发布的。 - SteveCinq

0

这里已经有答案了:使用WebBrowser.Document.Body.ScrollRectangle.Size而不是WebBrowser.Document.Window.Size。对我来说非常有效。


-1
var webBrowser = new WebBrowser();
// the magic!!!
webBrowser.Dock = DockStyle.Fill;
form.get_Controls().Add(webBrowser);
webBrowser.Navigate('http://a.com/');

-1
  • 第一步是看看是否可以调整控件的大小。
  • 第二步是查找网站所需的尺寸。
  • 第三步是将该尺寸或最大屏幕尺寸(两者取较小值),减去任何浏览器窗口,然后将控件调整为该尺寸。

我知道如何调整控件大小,我只需要获取网页的宽度。 - willseward
好的。第二步。不幸的是,我不知道怎么做!抱歉。 - John Saunders

-1
你最好的选择可能是让 WebBrowser 在窗体上一开始就使用尽可能多的空间(Dock.Fill),这样如果用户全屏最大化应用程序,他们会得到足够的空间,如果他们想要更小的网站,则可以随意调整应用程序的大小。这就是所有浏览器的工作方式。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接