.NETのWebBrowserコントロールはデフォルトではIE7互換表示モードで動作します。そのため、EdgeやIE11に合わせてサイトを作ると、表示がおかしくなります。その際の対処法をまとめました。
対処法をググると、2つ出てきます。
- HTMLにメタタグを入れる
- レジストリを修正する
自作のサイトを表示させるなら1ですが、外部のサイトなら2の方法が必要です。
ちなみに、MSの開発者であるPat Altimore氏のMS公式ブログを参考にしています(本家の開発者が言ってるなら安心…)。
やはり、デフォルトで WebBrowserコントロールは互換表示モードで動作する(IE7の表示仕様で動作)と仰ってますね。
. . .the WebBrowser control has a default configuration. By default, the WebBrowser control runs in compatibility view mode. Compatibility view mode is basically document mode 7.
https://docs.microsoft.com/ja-jp/archive/blogs/patricka/controlling-webbrowser-control-compatibility
で、以下、それぞれ2つの方法です。
HTMLにメタタグを入れる
これは簡単で、HTMLのヘッダ部分に下のタグを挿入するだけです。
<meta http-equiv="X-UA-Compatible" content="IE=edge">
たったこれだけです。
レジストリを編集する
当然ですが、レジストリの修正はリスクがありますので、自己責任で実施して下さい。
① レジストリエディタを開き、以下のキーを開きます(FEATURE_BROWSER_EMULATIONがなければ作る)。
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION.
② FEATURE_BROWSER_EMULATION キーを選択、右クリックし、「新規」→「DWARD(32ビット)値 」をクリック
③ 値の名前にexeのファイル名を入れます(例:TestWebBrowser.exe)。
④ 10進数で値に「11001」を入力
ちなみに、値の数字がバージョンを表します。基本は「1101」で良いでしょう。