WebBrowserをページの表示サイズに応じてサイズを変更する

//ブラウザにHTMLソースを入れる
webBrowser.DocumentText = "<HTML>〜中略〜</HTML>";
//上のHTMLを表示するためにちょうど良いサイズを取得する
Size size = webBrowser.Document.Body.ScrollRectangle.Size; //error! Body is null;
//ブラウザのサイズを変更する
webBrowser.Size = new Size(size.Width, size.Height);

上のソースではBODYタグがないと怒られる。
しかしBODYタグを入れても怒られる。
理由はwebBrowserにソースを入れた瞬間には反映されないかららしい。
webBrowserにソースがロードされた瞬間にwebBrowser.DocumentCompletedが呼ばれるのでそれを使う。

//ロード終了時に呼ばれる関数
private void loadCompHtml(object sender, WebBrowserDocumentCompletedEventArgs e) {
	//上のHTMLを表示するためにちょうど良いサイズを取得する
	Size size = webBrowser.Document.Body.ScrollRectangle.Size;
	//ブラウザのサイズを変更する
	webBrowser.Size = new Size(size.Width, size.Height);
}

//ロード完了イベントの登録
webBrowser.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(loadCompHtml);
//ブラウザにHTMLソースを入れる
webBrowser.DocumentText = "<HTML>〜中略〜</HTML>";