本物の IE7 または IE8 レンダリング エンジンで Web ブラウザ コントロールを使用する方法はありますか?
はい。ただし、コンピューターにインストールされている Internet Explorer のバージョンをバージョン 7 または 8 にダウングレードする必要があります。これは、使いやすいインストール エクスペリエンスにはなりません。
問題は、WebBrowser コントロールがコンピューターにインストールされている IE のバージョンを常に使用することです。これは、IE 自体が使用するものと同じネイティブ ライブラリ shdocvw.dll にレンダリングを委任するだけだからです。あなたの場合、それは IE 9 のようです。ただし、デフォルトでは、IE 7 互換モードでも実行されます。これはレジストリを編集することで変更できますが、レンダリング エンジンのバージョンは変更できません。
残念ながら、1 台のコンピューターで複数のバージョンの IE を実行する構成はサポートされていません。テスト目的で実行することはできます が、追加のソフトウェアが必要であり、バージョンが一緒にうまく動作しません。一方がスタンドアロンの IE ブラウザーをサポートし、もう一方が .NET WebBrowser コントロールを駆動するには、確かに十分ではありません。
IE 9 で正しく動作するようにコードを修正することが最善の選択肢です。IE 9 は、Microsoft が標準準拠のブラウザーに向けてゆっくりと前進していることを表しています。IE 9 にはまだいくつかの癖がありますが、サポートする価値はあります。Web サイトのコードは「別の誰か」によって管理されているとおっしゃっていましたが、サポート リクエストを提出することをお勧めします。そのコードにはバグがあり、修正する必要があります。あなた (または彼ら) がこれについて助けが必要な場合は、スタック オーバーフローでコード忍者のWeb 標準の専門家に尋ねることができます。
または、WebBrowser コントロールを別のコントロールに置き換えることを検討することもできます。.NET Framework には、他の一般的なブラウザーで使用されるレンダリング エンジンをラップする優れたものがいくつかあります。例えば:
- WebKit .NETは、Google Chrome と Apple Safari で使用される WebKit エンジンのラッパーです。
- GeckoFXは、Mozilla Firefox で使用される Gecko レンダリング エンジンのラッパーです。
- MozNetは Gecko の代替ラッパーです。
残念ながら、あなたが扱っているコードがひどく書かれており、IE 9 の標準への準拠に対する脆弱な試みがそれを屈服させている場合、さらに標準に準拠した別のブラウザーのレンダリング エンジンに切り替えても、大きな成功を収めることはまずありません。