10

WebBrowserコンポーネントを必要とするソフトウェアを構築しています。残念ながら、私のページは正しく表示されません。

私のコンテンツはこのCSSスタイルを使用しています:

.content_mid{
background-image:url(http://img.awesome-o.net/Content_Mid.png);
background-size: 100% 100%;
vertical-align:text-top;
padding-left: 40px;
padding-right:20px;
min-height:400px; 
}

WebBrowserコンポーネントがインストールされたバージョンのinterwebsExplorerを使用していることをすでに知っているので、Internet Explorerでhtmlを確認すると、完全に表示されます。

ここでは、IEで何が表示されるかを確認できます。

ここに画像の説明を入力してください

そして、これがwebbrowserコンポーネントにどのように表示されるかです。

ここに画像の説明を入力してください

だから、私はブラウザのバージョンをチェックしました:

Debug.WriteLine("WebBrowser version: " + webBrowser1.Version);
output: WebBrowser version: 9.0.8112.16443

だからそれは大丈夫だと思います。

4

4 に答える 4

9

これを必要とする他の人々へのさらなる参照のために:

まず第一に 、私の質問に対する答えを見つける手助けをしてくれたBooLex Liに感謝します。

特定のレジストリを正しい値に設定する必要があります。

32 ビットと 64 ビットのアプリケーションには、2 つの異なるキー セットがあります。

32 ビット:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION

Value Key: yourapplication.exe

64 ビット:

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION

Value Key: yourapplication.exe

このキーを設定する値は (MSDN here から取得) 10 進値です。

9999 (0x270F)
Internet Explorer 9. Webpages are displayed in IE9 Standards mode, regardless of the  !DOCTYPE directive.

 9000 (0x2328)
 Internet Explorer 9. Webpages containing standards-based !DOCTYPE directives are displayed in IE9 mode.

8888 (0x22B8)
Webpages are displayed in IE8 Standards mode, regardless of the !DOCTYPE directive.

8000 (0x1F40)
Webpages containing standards-based !DOCTYPE directives are displayed in IE8 mode.

7000 (0x1B58)
Webpages containing standards-based !DOCTYPE directives are displayed in IE7 Standards mode.

厳しい MSDn でさえ、9000 が自動的に割り当てられる値であると主張しています。どうやらこれは単に真実ではありません。

以下に、これらのキーをレジストリに追加するコードを示します。デバッグ時には、アプリケーションのプロセス名が異なることに注意してください。

RegistryKey key = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION", true);
        if (key != null)
        {
            key.SetValue("YourApplicationName.exe", 9000, RegistryValueKind.DWord);
        }

        key = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION", true);
        if (key != null)
        {
            key.SetValue("YourApplicationName.exe", 9000, RegistryValueKind.DWord);
        }

それでは、皆さんに感謝します。幸運を祈ります

編集: このコードを機能させるには、ユーザー アカウント制御をオフにする必要があります。

于 2012-04-23T14:09:25.650 に答える
0

また、値が IE=Edge の X-UA-Compatible という IIS アプリケーションに応答ヘッダーを追加することもできます。私はそれを私のweb.configに追加する傾向があります

于 2013-12-02T14:32:36.163 に答える