Как получить размер шрифта выделенного текста в элементе управления WebBrowser - PullRequest
1 голос
/ 02 августа 2010

Есть ли способ получить размер шрифта выделенного в данный момент текста в элементе управления Microsoft WebBrowser (MSHTML)?

Мне известно о IHTMLDocument2::queryCommandState("FontSize", ...), но этот метод возвращает значение только от 1 до 7, для устаревших размеров шрифта "xx-small" до "xx-large". Для размеров шрифта, таких как «10pt» или «14px», полезные значения не возвращаются.

Есть ли более гибкий способ определения размера шрифта?

РЕДАКТИРОВАТЬ: Тем временем я нашел решение моего вопроса (с некоторыми полезными советами от поддержки 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)
{
}

Ответы [ 2 ]

1 голос
/ 01 октября 2010

Поскольку вы узнали, как его получить, вот способ его настройки.

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

Для получения значения вы можете использовать

doc.queryCommandValue("FontSize");
0 голосов
/ 20 мая 2015
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());
}
...