问题
I want to do a HTML Render that shows a HTML Document, not necessary an online webpage. Then when I click over a HTML Control, it shows only the HTML where I clicked. The real intention is to get the xpath from the root element to the selected TAG.
回答1:
I think that you must use System.Windows.Forms.WebBrowser control for loading your html document. Override for example OnLeftButton event of the Form. And then call WebBrowser.Document.GetElementFromPoint method. So this method will return object of HtmlElement type. As the result you'll get html element from which you could navigate to inner html source code or navigate by hierarchy of tags from your selected tag;)
I create some example for you:
private static String GetTagNameByClick(WebBrowser refWebBrowser, Int32 valScreenX, Int32 valScreenY)
{
Point refPoint = refWebBrowser.PointToClient(new Point(valScreenX, valScreenY));
HtmlElement refHtmlElement = refWebBrowser.Document.GetElementFromPoint(refPoint);
return refHtmlElement.TagName;
}
Good luck!
来源:https://stackoverflow.com/questions/4219526/html-render-with-inspect-element-functionality-how-to-c-sharp