编程语言
首页 > 编程语言> > c#-WinForms WebBrowser-FireBug检查类似元素的突出显示

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?.

任何关于如何实现这一目标的想法都值得欢迎.谢谢.

解决方法:

IHighlightRenderingServices

标签:webbrowser-control,html,c,net,winforms
来源: https://codeday.me/bug/20191023/1914002.html