2010-08-02 6 views
1

Existe-t-il un moyen d'obtenir la taille de police du texte actuellement sélectionné dans le contrôle Microsoft WebBrowser (MSHTML)?Comment obtenir la taille de police du texte actuellement sélectionné dans le contrôle WebBrowser

Je connais IHTMLDocument2::queryCommandState("FontSize", ...), mais cette méthode renvoie uniquement une valeur comprise entre 1 et 7, pour les tailles de police obsolètes "xx-small" à "xx-large". Pour les tailles de police telles que "10pt" ou "14px", aucune valeur utile n'est renvoyée.

Existe-t-il un moyen plus flexible de déterminer la taille de la police?

EDIT: En attendant, je trouve une solution à ma question (avec quelques conseils utiles de soutien Microsoft):

try 
{ 
    mshtml.IHTMLTxtRange range = _dom.selection.createRange() as mshtml.IHTMLTxtRange; 
    if (range != null) 
    { 
     mshtml.IHTMLElement2 elem = range.parentElement() as mshtml.IHTMLElement2; 
     txtFontSize.Text = elem.currentStyle.fontSize.ToString(); 

    } 
} 
catch (COMException ex) 
{ 
} 

Répondre

1

Depuis que vous avez trouvé comment l'obtenir, voici un moyen de mettre en place.

mshtml.HTMLDocument doc = [Obtain HtmlDocument]; 
doc.execCommand("FontSize", false, "12pt"); 

Pour obtenir la valeur que vous pouvez utiliser

doc.queryCommandValue("FontSize"); 
0
IHTMLDocument2 htmlDocument = browser.Document.DomDocument as IHTMLDocument2; 

IHTMLSelectionObject sel = (IHTMLSelectionObject)htmlDocument.selection; 
IHTMLTxtRange range = (IHTMLTxtRange)sel.createRange() as IHTMLTxtRange; 

if (range != null) 
{ 
    range.select(); 
    var x = range.queryCommandValue("bold"); 
    textBoxFindData.Text = (x.ToString()); 
} 
Questions connexes