.NET Firebug как помощь пользовательского интерфейса - PullRequest
0 голосов
/ 06 октября 2008

Передо мной стоит проект, в соответствии с которым мне нужно создать уменьшенную версию Firebug, такую ​​как пользовательский интерфейс, где пользователь может загрузить HTML-страницу, и, когда они наводят курсор мыши на элементы, они будут выделены. Приложение позволит пользователям выбирать таблицу для скриншота .... пока не дошли до этой части.

Любой совет?

Спасибо

1 Ответ

3 голосов
/ 06 октября 2008

Ну, я не использовал Firebug UI, но я сделал именно то, что вы описываете, используя элемент управления .NET 2.0 WebBrowser в приложении WinForms.

В основном я добавил WebBrowser и элемент управления Timer в форму, затем в событии истекшего таймера я запрашиваю положение мыши, используя встроенную функцию GetCursorPos, и использую метод GetElementFromPoint WebBrowser.Document (HtmlDocument) (настраивая x и y). положение относительно элемента управления браузера).

Возвращает любой HtmlElement под позицией мыши. Вот мясо метода:

HtmlElement GetCurrentElement()
{
    if (Browser.ReadyState == WebBrowserReadyState.Complete && Browser.Document != null)
    {
        Win32Point mouseLoc = HtmlScan.Win32.Mouse.GetPosition();
        Point mouseLocation = new Point(mouseLoc.x, mouseLoc.y);
        // modify location to match offset of browser window and control position:
        mouseLocation.X = ((mouseLocation.X - 4) - this.Left) - Browser.Left;
        mouseLocation.Y = ((mouseLocation.Y - 31) - this.Top) - Browser.Top;

        HtmlElement element = Browser.Document.GetElementFromPoint(mouseLocation);

        return element;
    }

    return null;
}

После того, как вы получите HtmlElement, вы можете заставить InnerHTML анализировать, как считаете нужным.

Richard

...