Meilleur auteur de réponses
Utilisation du composant System.Windows.Forms.WebBrowser

Question
-
Bonjour,
Dans mon appli WinForm j'ai utilisé le composant System.Windows.Forms.WebBrowser pour visualiser des pages html qui sont enregistrées en ressource et qui ne contiennent que du texte. Par exemple :
wBrowser.DocumentText = My.Resources.Simple_Fr
Mais comment faire lorsque ces pages contiennent aussi des images et font référence à une feuille de style, l'ensemble en ressources de l'application ?
Comment communiquer images et feuille de style au WebBrowser ?
Merci de votre aide.
Alain
Réponses
-
Et ici c'est la solution pour le problème des images:
http://nathondalton.wordpress.com/2011/12/28/embedding-images-in-html-with-data-uri-base64-encoding/
- Marqué comme réponse AchLog mardi 2 juillet 2013 14:51
Toutes les réponses
-
Bonjour
Je ne vois que deux solutions:
1. créer des fichiers dans un répertoire temporaire et les affiches.
2. Utiliser un seul fichier .mht (MIME HTML) qui contient aussi les images/fonts et CSS. Si je me rappelle bien vous pouvez utiliser Word pour enregistrer ce type de fichiers.
Cordialement
-
Merci Aurel de votre réponse.
Je créé mes pages avec Expression Web qui, sauf erreur, ne génère pas de .mht
Il ne me reste donc que la première solution, comme je le présentais... Elle est un peu lourde. Il est dommage que le composant WebBrowser n'accepte pas d'images et de css en plus du texte !
Cordialement
Alain
-
Le CSS vous pouvez l'intégrer dans la page avec un tag <style>.
Mais reste le problème des images.
-
Et ici c'est la solution pour le problème des images:
http://nathondalton.wordpress.com/2011/12/28/embedding-images-in-html-with-data-uri-base64-encoding/
- Marqué comme réponse AchLog mardi 2 juillet 2013 14:51
-
Bonjour,
Il existe également la solution des "Asynchronous Pluggable Protocols" qui permettent de créer son propre schéma d'url dans une application (myhttp://xx/yy/z.html). Il s'agit d'une suite d'objet COM qui intercepte les requêtes demandée sur ce schéma, et on retourne ce que l'on veut, du texte, html, binaire. Ensuite il suffit de faire naviguer le WebBrowser sur une url de ce schéma.
J'avais mis cela en place il y une dizaine d'année sous Delphi, mais je ne sais pas si il existe une lib en C# car à implémenter c'est un peu compliqué : de mémoire il y a trois ou quatre interfaces système à mettre en œuvre plus l'utilisation des interfaces de flux.
Cordialement,
Yan Grenier
-
Merci Yan et Aurel pour vos réponses.
Je viens de mettre en oeuvre la méthode proposée par Aurel : PARFAIT. ça fonctionne bien et cela m'a permis de découvrir l'outil Base64 dont j'ignorais totalement l’existence...
La méthode de Yan parait plus compliquée à mettre en oeuvre, et comme le temps est une ressource rare... Mais c'est bon à savoir.
En tout cas merci à vous deux.
Cordialement
Alain