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