.NET Firebug, например помощь в пользовательском интерфейсе

StackOverflow https://stackoverflow.com/questions/172814

  •  05-07-2019
  •  | 
  •  

Вопрос

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

Любой совет?

Спасибо

Это было полезно?

Решение

Ну, я не использовал пользовательский интерфейс Firebug, но я сделал именно то, что вы описали, используя элемент управления .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 анализировать по своему усмотрению.

Ричард

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top