1

我正在使用 2 个网络浏览器来比较文本,当行变得很长时它会包裹我的文本,我想删除它或降低我的字体大小以避免这种情况。

有人可以告诉我如何删除单词扭曲或更改字体大小web Browsers吗?

下面的自动换行完全错过了我的比较:

在此处输入图像描述

4

3 回答 3

1

据我所知,网络浏览器控件没有属性可以做到这一点。网页的呈现完全由网页本身控制。

如果您无法更改网页本身,则最好的办法是缓存本地版本并使用WebBrowser.Document.ExecCommand(). WebBrowser.Document.InvokeScript()也可以,但需要已经定义的 JS,所以我们必须继续手动添加脚本。

HtmlElement head = webBrowser.Document.GetElementsByTagName("head")[0];
HtmlElement script = webBrowser.Document.CreateElement("script");
IHTMLScriptElement element = (IHTMLScriptElement)script.DomElement;
element.text = "function adjust { document.getElementById('yourIdHere').style.whiteSpace='nowrap'; }";
head.AppendChild(script);
webBrowser.Document.InvokeScript("adjust");

只需通过查看网页的源代码找到文本的 div id 就可以了。如果它没有 div id,你可以使用其他 JS 方法(例如 getElementsByTagName)来查找它。

于 2012-06-26T07:50:45.883 回答
1

您无法从 Web 控件自身调整字体大小或包装文本。因此,您应该调整 Web 浏览器中元素的样式。

我在设置绿色和红色突出显示的同一位置调整了样式。

    html.Append("<ins style=\"white-space:nowrap; display:inline; background:#e6ffe6;\">")
        .Append(text)
        .Append("</ins>");

“空白:nowrap;显示:内联;

上面的代码是我添加来删除自动换行的。

于 2012-06-26T12:31:19.650 回答
1

受到 Pomster's Answer 的启发,这就是我为获得最佳结果所做的事情:

String.Format("<div style='white-space:nowrap; display:inline;'>{0}</div>",text);

c# 6.0 版本:

$"<div style='white-space:nowrap; display:inline;'>{text}</div>";
于 2014-07-21T19:31:07.520 回答