По сути, мне нужно загрузить любой HTML-документ в WebBrowser и позволить пользователям визуально выбирать один или несколько элементов HTML DOM (чтобы получить свои XPath, но это уже другая история).
При наведении курсора на элемент выделяется цвет А, а при перемещении мыши восстанавливается его визуальное состояние.
Если щелкнуть элемент, он будет выделен цветом B, при повторном щелчке по ранее выбранному элементу будет восстановлено его визуальное состояние.
Подводя итог, он должен вести себя как функция FireBug Inspect Element или как 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?
Обновление : фактически можно установить класс CSS с помощью HtmlElement.SetAttribute("className")
; чтобы внедрить классы CSS, проверьте, например, C #: лучший способ внедрить CSS в экземпляр MSHTML? .
Любые идеи о том, как этого добиться, приветствуются. Спасибо.