有没有办法在Microsoft WebBrowser控件(MSHTML)中获取当前所选文本的字体大小?
我知道IHTMLDocument2::queryCommandState("FontSize", ...)
,但是对于过时的字体大小“xx-small”到“xx-large”,此方法只返回1到7之间的值。对于“10pt”或“14px”等字体大小,不会返回有用的值。
是否有更灵活的方法来确定字体大小?
编辑:与此同时,我找到了一个问题的解决方案(微软支持提供了一些有用的提示):
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)
{
}
答案 0 :(得分:1)
既然你发现了如何获得它,这是一种设置它的方法。
mshtml.HTMLDocument doc = [Obtain HtmlDocument];
doc.execCommand("FontSize", false, "12pt");
获取可以使用的值
doc.queryCommandValue("FontSize");
答案 1 :(得分: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());
}