Déclarer une feuille de style

Le
Gloops
Bonjour tout le monde,

Je suis en train de créer une application WinForm pour générer une =
page
web aspx (enfin une à la fois). Chaque enregistrement sera renseign=
é
par des listes déroulantes pour indiquer le type de contenant (par
exemple paragraphe, ou cellule de tableau), le type de contrôle (par
exemple asp:Label), le style affecté à chacun des deux, le texte dans=
la
langue d'origine, et le texte traduit dans une autre langue, le tout
enregistré dans une table SQL Server. Le chemin du fichier a été pr=
écisé
dans un précédent formulaire, qui a aussi permis de sélectionner la=

feuille de style et la page maîtresse.

Le but est de faciliter la saisie du texte, plutôt que d'aller fouiller=

dans l'interface des ressources de VS 2005, qui à mon sens a le
mérite d'exister.

Une fois que tout ça est prêt un bouton permet de générer la page=
aspx
et les deux fichiers de ressource.

Il faut donc commencer par charger la liste des styles dans les listes
déroulantes correspondantes. Lorsque je regarde dans l'aide, je vois qu=
e
l'objet StyleSheet est défini dans l'objet Document, et j'en déduis
qu'il me faudra donc créer sur le winform un contrôle webbrowser (non=

visible) où je charge un document temporaire ayant juste pour objet de =

faire le lien avec la feuille de style.

Alors voilà, l'objet de la question est juste de savoir si quelqu'un
voit une méthode plus optimisée, c'est-à-dire recourant à moins d=
e
ressources (ou à un algorithme plus simple, ou encore les deux) pour le=

même résultat, à savoir charger la liste des styles dans les listes=

déroulantes ?
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Gloops
Le #20720571
Re,

Bon, eh bien même via le webbrowser, ça a l'air de coincer, à savoi r que
j'ai du mal à charger ma feuille de style dans une collection
StyleSheets pour compter les éléments et extraire les styles du premi er.

ça serait bien de comprendre, de toute façon, si Microsoft s'est donn é
le mal d'implémenter un objet StyleSheet et la collection qui va avec,
c'est bien qu'on est supposé être capable de s'en servir ?

En faisant du casting à deux étages j'ai fini par obtenir un
IHtmlDocument2, qui a une propriété StyleSheets retournant une
collection de feuilles de styles, mais sa propriété length me retourn e
0, alors que le document ouvert comporte dans la partie head la clause

se référant à une feuille de style située dans le même répert oire.

Si je voulais déclarer le document en XHTML il faudrait fermer la claus e
avec une barre oblique à la fin, mais de toute manière le document est
déclaré en
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/transitional.dtd">

D'ailleurs dans le corps du document j'ai mis un paragraphe pour lui
affecter un style, et il apparaît bel et bien mis en forme conforméme nt
au style, ce qui n'empêche pas la collection StyleSheets d'avoir une
length à 0.

J'utilise VS2005 sur la plateforme .Net 2, ce qui risque de ne pas me
rendre très réactif à la notion de HTML Bridge de Silverlight.
Mon WebBrowser est déclaré sous System.Windows.Forms, et les castings se
présentent comme suit :
System.Windows.Forms.HtmlDocument d =(HtmlDocument)webBrowser1.Document ;
mshtml.HTMLDocument hd = (mshtml.HTMLDocument)d.DomDocument;
mshtml.IHTMLDocument2 doc = (IHTMLDocument2)hd;
int inbFeuilles = doc.styleSheets.length;

et alors donc je m'attendais à inbFeuilles = 1, or j'obtiens 0.

Une erreur au niveau des castings, peut-être ?
D'autres ont parlé de ça à propos de football, mais là je n'ai pa s trop
suivi la question. :)

Il resterait bien la solution bête et méchante, ouvrir la feuille sty le
en fichier texte, lire la chaîne jusqu'au premier séparateur,
interrompre le traitement à la première accolade ouvrante jusqu'à
l'accolade fermante, et puis recommencer jusqu'à la fin du fichier. ç a
doit marcher, au demeurant je dois bien avouer que pour le moment c'est
un peu dans cet esprit que je génère mon fichier aspx (l'avantage é tant
que je ne passe pas trop de temps à chercher), mais je ne suis pas bien
certain que ce soit conforme à l'esprit de la plateforme .Net.

_____________________________________
Gloops a écrit, le 04/12/2009 22:29 :
Bonjour tout le monde,

Je suis en train de créer une application WinForm pour générer un e page
web aspx (enfin ... une à la fois). Chaque enregistrement sera rensei gné
par des listes déroulantes pour indiquer le type de contenant (par
exemple paragraphe, ou cellule de tableau), le type de contrôle (par
exemple asp:Label), le style affecté à chacun des deux, le texte da ns la
langue d'origine, et le texte traduit dans une autre langue, le tout
enregistré dans une table SQL Server. Le chemin du fichier a été précisé
dans un précédent formulaire, qui a aussi permis de sélectionner la
feuille de style et la page maîtresse.

Le but est de faciliter la saisie du texte, plutôt que d'aller fouill er
dans l'interface des ressources de VS 2005, qui à mon sens a ... le
mérite d'exister.

Une fois que tout ça est prêt un bouton permet de générer la pa ge aspx
et les deux fichiers de ressource.

Il faut donc commencer par charger la liste des styles dans les listes
déroulantes correspondantes. Lorsque je regarde dans l'aide, je vois que
l'objet StyleSheet est défini dans l'objet Document, et j'en déduis
qu'il me faudra donc créer sur le winform un contrôle webbrowser (n on
visible) où je charge un document temporaire ayant juste pour objet d e
faire le lien avec la feuille de style.

Alors voilà, l'objet de la question est juste de savoir si quelqu'un
voit une méthode plus optimisée, c'est-à-dire recourant à moins de
ressources (ou à un algorithme plus simple, ou encore les deux) pour le
même résultat, à savoir charger la liste des styles dans les list es
déroulantes ?




Publicité
Poster une réponse
Anonyme