WebBrowserコントロールのレンダリングモードを変更するには?


"このサイトは Internet Explorer xx 以上で..." に対応する方法。

WPFやWindows.FormsでWebBrowserコントロールのレンダリングモード(バージョン)を変更するには、レジストリ FEATURE_NATIVE_DOCUMENT_MODE に実行ファイル名とモード指定値をセットします。

HKEY_LOCAL_MACHINE (or HKEY_CURRENT_USER)
   SOFTWARE
      Microsoft
         Internet Explorer
            Main
               FeatureControl
                  FEATURE_BROWSER_EMULATION
                     MyApp.exe = (DWORD) 00009000

モード指定値に使用可能な値は、Internet Explorer Dev Center の以下のページから Browser Emulation の項を参照してください。

Internet Feature Controls (B..C) (Internet Explorer)


// C#でレジストリに値をセットするサンプル
string key = @"HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION";
string valueName = Process.GetCurrentProcess().ProcessName + ".exe";
int value = 9000; // Rendering mode IE9

Registry.SetValue(key, valueName, value, RegistryValueKind.DWord);

Visual Studioでのデバッグ時は、MyApp.vshost.exeといったように実行がファイル名に "vshost" が付くことに注意しましょう。

参考

Internet Feature Controls (B..C) (Internet Explorer)

WebBrowser Control Rendering Modes in IE8