3 votes

les pages à haute DPI ne s'affichent pas correctement dans le contrôle du navigateur web

J'ai fait des recherches sur ce sujet pendant un certain temps et je n'arrive pas à avancer.

Je développe un module complémentaire partagé Outlook (en C# sur .Net 4.0) qui charge une page web dans un contrôle de navigateur web à la demande de l'utilisateur. J'ai essayé d'utiliser à la fois le contrôle Windows.Forms.WebBrowser et le contrôle AxSHDocVw.AxWebBrowser. La page Web que je charge comporte de nombreux contrôles html, y compris (mais sans s'y limiter) des zones de texte et des étiquettes html/asp.net de base, des boutons Telerik et des contrôles redSelect.

Le problème que je rencontre est que lorsque l'utilisateur a un réglage DPI élevé, les contrôles de la page Web ne sont pas redimensionnés correctement. En d'autres termes, les étiquettes et les boîtes de texte sont redimensionnées correctement, mais les autres contrôles - principalement ceux de Telerik - ne sont pas redimensionnés (ou sont-ils redimensionnés ??). Cependant, si j'ouvre la même page web dans IE, FF, Chrome ou tout autre navigateur en haute DPI, tous les contrôles sont redimensionnés correctement.

J'ai également essayé de définir la clé de registre "FEATURE_BROWSER_EMULATION" pour outlook.exe, mais en vain. Comme mon application est un add-in partagé d'outlook, je n'ai pas de manifeste pour définir le paramètre dpiAware.

Quelqu'un a-t-il rencontré un tel problème ? Toute aide sera grandement appréciée. Merci !

--EDIT--

En effectuant des tests supplémentaires, j'ai découvert que le problème est qu'Outlook est déjà déclaré comme étant dpiAware. C'est pour cette raison que les contrôles Telerik ne sont pas mis à l'échelle. Existe-t-il un moyen de demander au contrôle du navigateur web de s'afficher sans tenir compte de la résolution dpi ? Ou existe-t-il un meilleur moyen de résoudre ce problème ?

2voto

volody Points 3400

Vérifier l'article suivant Vous pouvez rencontrer des limitations de ressources dans l'interface de périphérique graphique (GDI) lorsque vous utilisez le contrôle du navigateur Web de Microsoft. . Ce poste est lié à l'ordinateur WinXP ou Server 2003 qui exécute Microsoft Office XP ou Microsoft Office 2003.

Un autre point à examiner est CARACTÉRISTIQUE_IVIEWOBJECTDRAW_DMLT9_WITH_GDI

Internet Explorer 9. Par défaut, le contrôle WebBrowser utilise Microsoft DirectX pour rendre les pages Web, ce qui peut poser des problèmes aux applications qui utilisent la méthode Draw pour créer des bitmaps à partir de certaines pages Web.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X