c#-WinForms WebBrowser-FireBug检查类似元素的突出显示
作者:互联网
基本上,我需要在WebBrowser控件中加载任何HTML文档,并允许用户直观地选择一个或多个HTML DOM元素(以获取其XPath,但这是另一回事了).
将鼠标悬停在元素上将以颜色A突出显示,将鼠标移出将恢复其视觉状态.
单击一个元素将以颜色B突出显示它,再次单击先前单击的元素将恢复其视觉状态.
总而言之,它的行为应类似于FireBug检查元素功能或Dapp Factory选择内容功能.
天真的方法是使用HtmlElement.Style属性,如下面的示例所示,但是显然我不能,因为该元素可能已经以相同的方式设置了边框样式,在这种情况下,不应在MouseLeave上将其删除:
void Document_MouseOver(object sender, HtmlElementEventArgs e)
{
// what if e.FromElement.Style already contains "border: solid 1px Red;" ?
e.FromElement.Style = "border: solid 1px Red; " + e.FromElement.Style;
[...]
}
可能我可以通过设置/取消自定义CSS类来实现此目的(就像在相同情况下使用JavaScript一样),但是HtmlElement似乎没有公开这样的属性,无论如何我将如何注入CSS类定义?
更新:实际上可以用HtmlElement.SetAttribute(“ className”);设置CSS类.要注入CSS类,请查看例如C#: Best way to inject CSS into MSHTML instance?.
任何关于如何实现这一目标的想法都值得欢迎.谢谢.
解决方法:
标签:webbrowser-control,html,c,net,winforms 来源: https://codeday.me/bug/20191023/1914002.html