Как получить ограничивающий прямоугольник для элемента HTMLAgilityPack дом в C#?


Мое приложение использует HtmlAgilityPack для загрузки HTML-документов и анализа их DOM-структуры с большим количеством запросов XPath. Отказ от ответственности: поддержка XPath чрезвычайно важна для моих целей, я не могу переключиться на CSS селекторы, например. Это основная (и, наверное, единственная) причина, по которой я использую HtmlAgilityPack.

У меня есть HtmlAgilityPack.HtmlNode, выбранный из HTML-документа с некоторым запросом XPath. Теперь мне нужно реализовать один дополнительный метод: Что будет ограничивающим прямоугольником координаты этого элемента, если он был отрисован каким-то движком? меня даже не волнует, какой именно движок используется, пусть это будет WebKit, MSIE,Gecko / Firefox и т. д. Мне просто нужен способ:

  1. визуализация документа в памяти на холсте произвольного размера (скажем, 1900*1200 пикселей).
  2. установите взаимно однозначное соответствие между деревом DOM визуализатора и HtmlAgilityPack.HtmlDocument, которое у меня уже есть.
  3. попросите визуализатор для ограничивающего прямоугольника конкретного элемента DOM (HtmlAgilityPack.HtmlNode) на этом холст.
Я уже потратил полдня на изучение различных движков рендеринга HTML для .NET, но до сих пор не нашел способа сделать это. Может быть, кто-то уже решил подобную задачу? Спасибо за любую помощь.
1 2

1 ответ:

Можно попробовать добавить пользовательский атрибут. Затем найдите его в WebBrowser control.
Что-то вроде этого.