2010-06-15 6 views
8

Je crée une application Windows Forms qui utilise le contrôle WebBrowser. Quelqu'un peut-il me dire quel moteur de rendu le contrôle utilise?Quelle est la version du navigateur d'un contrôle WebBrowser dans Windows Forms

Est-il corrigé en fonction de la version du framework .NET que je développe ou est-il basé sur la version d'IE installée sur la machine du client? Est-ce que le client a même besoin d'IE? En d'autres termes, si un site Web apparaît correctement dans mon application sur mon ordinateur, est-il raisonnable de supposer qu'il s'affichera correctement sur la machine de tout le monde?

Merci!

Répondre

4

Ce sera la version de IE installée sur la machine cible. Il ne peut y en avoir qu'un, IE ne supporte pas l'installation côte à côte des versions. Vous ne savez pas que votre application fonctionnera sans problème, à moins que vous ne la testiez sur différentes machines équipées des versions 6, 7 et 8. C'est normalement le fardeau de l'auteur du site Web.

+0

Juste ce que je voulais savoir - merci! Nous développons un site spécifique à charger dans ce contrôle. Les internautes seront ravis d'apprendre qu'ils ont encore besoin de tester dans IE6 !! ; o) –

+0

[ici] (https://blogs.msdn.microsoft.com/ie/2009/03/10/more-ie8-extensibility-improvements/) msdn indique que * "Pour des raisons de compatibilité, le contrôle WebBrowser s'exécuter en mode Standards IE7 par défaut si aucune valeur de clé de contrôle de fonctionnalité n'est définie pour une application. "* Comment votre déclaration va-t-elle avec cela? Si IE11 est installé sur la machine exécutant l'application avec WebBrowser, et qu'aucune clé de contrôle de fonctionnalités n'a été spécifiée, ni aucune balise de méta-compatibilité (qui, par ailleurs, ne semble pas avoir d'effet dans mon cas) - vous n'êtes pas d'accord Version IE WebBrowser sera de 11, au lieu de 7? – Veverke

+0

Vous avez IE11, il * émule * les caprices de IE7. La clé de registre FEATURE_BROWSER_EMULATION peut être utilisée pour modifier ou désactiver cette émulation. –

0

Vous devez définir la clé de Registre, sinon le WebBrowser rendra comme IE4

Voir ici: http://www.west-wind.com/weblog/posts/2011/May/21/Web-Browser-Control-Specifying-the-IE-Version

Registre Lieu clé pour FEATURE_BROWSER EMULATION Vous pouvez spécifier ces clés dans le Registre à:

HKEY_CURRENT_USER \ LOGICIEL \ Microsoft \ Internet Explorer \ Main \ FeatureControl \ FEATURE_BROWSER_EMULATION La clé HKCU est le meilleur endroit pour définir ces valeurs car il y a une seule touche et elle peut être définie avec ut des droits d'administrateur, mais vous pouvez également définir ces clés au niveau de la machine à HKLM:

HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Internet Explorer \ Main \ FeatureControl \ FEATURE_BROWSER_EMULATION ou pour une application 32 bits sur une machine 64 bits:

HKEY_LOCAL_MACHINE \ SOFTWARE \ WOW6432Node \ Microsoft \ Internet Explorer \ Main \ FeatureControl \ FEATURE_BROWSER_EMULATION

nom de la clé le nom de clé est le nom EXE de votre application comme:

outlook.exe MarkdownMonster.exe

Valeurs

La valeur indique la version IE comme suit:

La valeur pour définir cette clé est (tirée de MSDN ici) en tant que valeurs décimales:

11001 (0x2AF9) Internet Explorer 11. Les pages Web sont affichées en mode IE11 Standards, quelle que soit la directive! DOCTYPE.

11000 (0x2AF8) Internet Explorer 11. Les pages Web contenant des directives DOCTYPE basées sur des normes sont affichées en mode IE9.

10001 (0x2AF7) Internet Explorer 10. Les pages Web sont affichées en mode IE10 Standards, quelle que soit la directive! DOCTYPE.

10000 (0x2710) Internet Explorer 10. Les pages Web contenant des directives DOCTYPE basées sur des normes sont affichées en mode IE9.

9999 (0x270F) Internet Explorer 9. Les pages Web sont affichées en mode IE9 Standards, quelle que soit la directive! DOCTYPE.

9000 (0x2328) Internet Explorer 9. Les pages Web contenant des directives DOCTYPE basées sur des normes sont affichées en mode IE9.

8888 (0x22B8) Les pages Web sont affichées en mode Standards IE8, quelle que soit la directive! DOCTYPE.

8000 (0x1F40) Les pages Web contenant des directives DOCTYPE basées sur des normes sont affichées en mode IE8.

7000 (0x1B58) Les pages Web contenant des directives DOCTYPE basées sur des normes sont affichées en mode IE7 Standards. Ce mode est un peu inutile car c'est le comportement par défaut.

La définition de ces touches permet à vos applications d'utiliser facilement les dernières versions d'Internet Explorer sur votre ordinateur. Malheureusement, il ne semble pas y avoir une clé qui dit utiliser la dernière version qui est installée - vous devez être précis concernant la version malheureusement. Étant donné que Windows 7 et versions ultérieures peuvent exécuter IE 11, je demande aux utilisateurs d'avoir IE 11 si je veux utiliser HTML5 et des fonctionnalités CSS plus avancées comme Flexbox, mais si votre contenu est plus simple, vous pouvez probablement utiliser IE 10 ou même IE 9.