C# WebBrowserのレンダリングモード
- VisualC#
-
2013-11-21 - 更新:2014-09-30
この記事は最終更新日から1年以上経過しています。
Visual C#にてブラウザを使用したアプリケーションを作成したとき、
WEBページを表示すると表示がおかしいと思って、ユーザーエージェントを確認してみると
IE7となっていました。
環境はWindows7でIE9なのになぜだろう?と思いました。
どうやら作成したアプリケーションではレンダリングモードが「7」で実行されているようです。
解決するにはレジストリを編集し、レンダリングモードを変更してやらないといけません。
ユーザーエージェントのレジストリキー
HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION
レンダリングモードのレジストリキー
HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_DOCUMENT_COMPATIBLE_MODE
ユーザーエージェント、レンダリングモードをIE9にするには、それぞれのレジストリキーに
ユーザーエージェントは「9000」、レンダリングモードは「90000」という値を設定します。
レンダリングモードをIE9にする
string FEATURE_BROWSER_EMULATION = @"Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION";
string FEATURE_DOCUMENT_COMPATIBLE_MODE = @"Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_DOCUMENT_COMPATIBLE_MODE";
string exename = "アプリケーション.exe"; //デバッグ時には.vshost.exeにしておく
private void Form1_Load(object sender, EventArgs e)
{
Microsoft.Win32.RegistryKey regkey1 =
Microsoft.Win32.Registry.CurrentUser.CreateSubKey(FEATURE_BROWSER_EMULATION);
Microsoft.Win32.RegistryKey regkey2 =
Microsoft.Win32.Registry.CurrentUser.CreateSubKey(FEATURE_DOCUMENT_COMPATIBLE_MODE);
// ユーザーエージェントをIE9に
regkey1.SetValue(exename, 9000, Microsoft.Win32.RegistryValueKind.DWord);
// レンダリングモードをIE9に
regkey2.SetValue(exename, 90000, Microsoft.Win32.RegistryValueKind.DWord);
regkey1.Close();
regkey2.Close();
webBrowser1.Navigate("[URL]");
}
この記事がお役に立ちましたらシェアお願いします
10,292 views




