7

WPF WebBrowser コントロールは、ユーザーのマシンにインストールされている IE のバージョンに依存していますか? それとも、マシン間で一貫した別のライブラリを使用していますか? IE7 モードでのみレンダリングされると読みましたが、IE がインストールされていないか、何らかの理由で IE6 を使用しているユーザーに問題がないことを確認したいと思います。

4

2 に答える 2

13

WebBrowserのMSDN のコメントは、IE ActiveX コントロールを再ホストすることを示しています。

WebBrowser コントロールは、ネイティブ WebBrowser ActiveX コントロールを内部的にインスタンス化します。

WebBrowser ActiveX コントロールは、Shdocvw.dll. これは順番にラップMshtml.dllし、環境によってはおそらく他の DLL もラップします。このコントロールを再ホストする際の 1 つの注意点は、ブラウザー エミュレーションの設定です

WebBrowser コントロールをホストするアプリケーションの場合、既定値は です7000。レジストリを使用してこの機能の値を制御するには、実行可能ファイルの名前を次の設定に追加し、目的の設定と一致するように値を設定します。

0x7000は IE7 互換モードを意味します。したがって、WPF アプリケーションで他のモードを使用してレンダリングする場合は、次のを参考にして、レジストリを更新する必要があります。

[HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION] 
"MyApplication.exe" = dword:2328
于 2012-05-01T19:28:01.177 に答える
0

IE11 を搭載したマシンで WebBrowser コントロールを使用して WPF アプリを作成し、次のユーザー エージェント文字列を取得しました。

user agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; InfoPath.3; .NET CLR 1.1.4322)

IE10 を搭載したマシンで WebBrowser コントロールを使用して WPF アプリを作成し、次のユーザー エージェント文字列を取得しました。

user agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/6.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET4.0C; .NET4.0E)

Trident/7.0 は IE11 を示し、Trident/6.0 は IE10 を示します。ユーザー エージェント文字列の詳細

また、IE10 を使用するシステムでは、IE11 を使用するシステムとは異なるページ レンダリングが行われました。また、各システムのスタンドアロン IE ブラウザでもこれを確認しました。

IE のないシステムまたは IE6 を実行しているシステムではまだ試していませんが、WebBrowser コントロールは、現在システムにインストールされている IE のバージョンに関連しているようです。

于 2016-11-08T15:41:46.460 に答える