2012-04-19 16 views
6

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

私のコンテンツは、このCSSスタイルを使用しています。私はすでにWebブラウザーコンポーネントを見つけたので

.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; 
} 

は、私は、Internet Explorer上でHTMLをチェックしinterwebsエクスプローラのインストール済みのバージョンを使用し、それは完全に表示されます。

enter image description here

そして、ここではそれがウェブブラウザコンポーネントで表示する方法です:あなたはそれをIEで表示するものと見ここ

enter image description here

ので、私は、ブラウザのバージョンをチェックします:

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

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

+0

してくださいに追加する傾向があります。それがタグのためのものです。 –

+0

申し訳ありません。最初の質問 – RoXaS

答えて

9

だけhead要素内でこのmeta要素をこのDOCTYPEを試すことができますすべて: ありがとうございましたBoo & Lex Li 私は、私の質問にr。

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

32ビットおよび64ビット・アプリケーションのためのキーの2つの異なるセットがあります。小数点値として(ここでMSDNから取られる)にこのキーを設定する

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

Value Key: yourapplication.exe 

値:

32ビット:

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

Value Key: yourapplication.exe 

64ビット

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が自動的に割り当てられた値であると主張しています。 Apperentlyこれは単に真実ではありません。

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

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); 
     } 

だから、感謝のすべてのグッドラック

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

11

This pageは、ブラウザコントロールに特定のレンダリングモードを使用させる方法を説明しています。の

まず:

また

<!DOCTYPE html> 

、および/またはこれを必要とする他の人々をさらに参照するための

<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> 
+0

お返事ありがとうございます。 "Internet Explorer 9の既定値は9000です。" "説明:\t Internet Explorer 9.標準ベースの!DOCTYPEディレクティブを含むWebページは、IE9モードで表示されます。 それは私にとって正しい価値のようですか、あるいはあなたは異なって考えますか? – RoXaS

+0

あなたのページはdoctypeを定義していますか? –

+0

はい: <!DOCTYPE html PUBLIC " - // W3C // DTD XHTML 1.0 Transitional // EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" > – RoXaS

0

IISアプリケーションに応答ヘッダーを追加することもできます。これは、IE = Edgeという値でX-UA互換と呼ばれます。私は、 "C#の" と、そのようなであなたのタイトルの接頭辞はありません、私のweb.configファイル

+0

答えをありがとう、しかし、私は恐れているこれはWindowsフォームアプリケーションの心配です。 web.configはありません。 – RoXaS

関連する問題