そのため、Webブラウザーコンポーネントを利用するC#フォームアプリケーションがあります。どうやらResponse.Write(Request.Browser.Version.ToString()); Webブラウザーコンポーネントからテストページにアクセスすると、「7.0」が返されます。
このWebブラウザーコンポーネントでIE8を使用するにはどうすればよいですか?
この記事のようにレジストリをいじる必要があるようです:-
http://blogs.msdn.com/ie/archive/2009/03/10/more-ie8-extensibility-improvements.aspx
IE8標準モードでWebBrowserコントロールを実行するには、次の新しい値をレジストリに使用します。
[(HKEY_CURRENT_USER or HKEY_LOCAL_MACHINE)\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION]
"MyApplication.exe" = dword 8000 (Hex: 0x1F40)
IE7標準モードで実行するには、次のレジストリ値を使用します。
[(HKEY_CURRENT_USER or HKEY_LOCAL_MACHINE)\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION]
"MyApplication.exe" = dword 7000 (Hex: 0x1B58)
IE8 RTMでは、新しい「強制」IE8標準モード値が追加されました。アプリケーションがこのモードを選択すると、WebブラウザーコントロールはIE8ユーザーエージェント文字列とブラウザーエミュレーションモードを厳密に使用します。また、ページを読み込むときに、組み込みの互換表示リストやユーザーが作成した互換表示リストなどのフォールバック機能も無視します。 「強制」IE8標準モードで実行するには、次のレジストリ値を使用します。
[(HKEY_CURRENT_USER or HKEY_LOCAL_MACHINE)\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION]
"MyApplication.exe" = dword 8888 (Hex: 0x22B8)
これらすべての例で、「MyApplication.exe」はアプリケーションの名前を指します。
回答が遅れてあなたのケースに当てはまらない場合がありますが、質問に対するRonの回答 WPF .net4 webBrowser and Internet Explorer 8 によると、Webブラウザーを制御することもできます提供されるページ:
<meta http-equiv="X-UA-Compatible" content="IE=Edge"/>
これは明らかにユーザーエージェントを変更しませんが、
<!--[if lt IE 8]>
およびCSS border-radius
は適切に評価されており、ユーザーエージェントがMSIE 7.0を報告しているにもかかわらず、最新のエンジン(私のシステムではIE 9)が実際に使用されていることを示しています。
私はこれに従いましたが、ビジュアルスタジオでデバッグしているためだと気づくまで機能しませんでした。
アプリケーションのレジストリを設定することに加えて:
Registry.SetValue(@"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION",
System.AppDomain.CurrentDomain.FriendlyName, value);
また、デバッグ(ビジュアルスタジオでホストされる)アプリケーションにも設定する必要があります。
Registry.SetValue(@"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION",
System.AppDomain.CurrentDomain.FriendlyName.Replace(".exe",".vshost.exe"), value);