web-dev-qa-db-ja.com

IE10モードを使用するようにWPF Webブラウザーコントロールを設定する

マシンにインストールされているiE10モード以上のバージョンでページをレンダリングするようにWPF Webブラウザーコントロールを設定するにはどうすればよいですか。デフォルトでは、OS> windows 7のいずれかのマシンで.net 4または.net 4.5アプリケーションを作成すると、HTMLページはIE7モードでのみレンダリングされます。 (間違っている場合は修正してください)IE10がターゲットマシンにインストールされている場合に、アプリケーションがHTMLページをIE10モードでレンダリングできるようにする方法は?助けて

14
Jibin Mathew

ここで説明するように、レジストリを使用できます。

http://msdn.Microsoft.com/en-us/library/ie/ee330730%28v=vs.85%29.aspx

編集:より良い説明のためにこの回答も読むことができます IE9 WebBrowser ControlはSVGを含むIE9のすべての機能をサポートしますか?

7
user3337803

レジストリを変更せずにWebページを制御する場合は、

<meta http-equiv="X-UA-Compatible" content="IE=10">

ドキュメントの先頭にタグを付けます。私はそれが最初か直後にある必要があると思います<title>動作させるために。

21
xr280xr

WPF WebブラウザーコントロールでIE11モードが必要な場合は、たとえばメインウィンドウのコンストラクターで、次のコードを追加します。

var pricipal = new System.Security.Principal.WindowsPrincipal(
  System.Security.Principal.WindowsIdentity.GetCurrent());
if(pricipal.IsInRole(System.Security.Principal.WindowsBuiltInRole.Administrator)) {
    RegistryKey registrybrowser = Registry.LocalMachine.OpenSubKey
        (@"Software\\Microsoft\\Internet Explorer\\Main\\FeatureControl\\FEATURE_BROWSER_EMULATION", true);
    string myProgramName = Path.GetFileName(System.Reflection.Assembly.GetExecutingAssembly().Location);
    var currentValue = registrybrowser.GetValue(myProgramName);
    if (currentValue == null || (int)currentValue != 0x00002af9)
        registrybrowser.SetValue(myProgramName, 0x00002af9, RegistryValueKind.DWord);
}
else
    this.Title += " ( Первый раз запускать с правами админа )";

Visual Studioから実行したときにWPF WebブラウザーコントロールがデバッグモードでIE11モードを使用することを確認するには、すべてのプログラム "*"をレジストリに追加する必要があります。これは、次のコードで実行できます。

var pricipal = new System.Security.Principal.WindowsPrincipal(
    System.Security.Principal.WindowsIdentity.GetCurrent());
if (pricipal.IsInRole(System.Security.Principal.WindowsBuiltInRole.Administrator)) {
    RegistryKey registrybrowser = Registry.LocalMachine.OpenSubKey
    (@"Software\\Microsoft\\Internet Explorer\\Main\\FeatureControl\\FEATURE_BROWSER_EMULATION", true);
    var currentValue = registrybrowser.GetValue("*");
    if (currentValue == null || (int)currentValue != 0x00002af9)
        registrybrowser.SetValue("*", 0x00002af9, RegistryValueKind.DWord);
}
else
    this.Title += " ( Первый раз запускать с правами админа )";

Windows 10とVisual Studio 2015を確認しました。

備考:Internet Explorerの他のバージョンをコード化します。ここを参照してください https://msdn.Microsoft.com/en-us/library/ee330730(v = vs.85).aspx#browser_emulation

4
Mentor