Доступ к DOM из WebBrowser
Я пытаюсь реализовать небольшое браузерное приложение, которое позволило бы мне изменять внешний вид просматриваемых веб-сайтов (например, увеличивать шрифт для ссылок). Он предназначен для Microsoft Surface, для использования на огромном сенсорном экране. Он использует WPF для пользовательского интерфейса.
Я намерен использовать элемент управления WebBrowser для этой задачи. Однако в документах есть два класса, называемых WebBrowser. Один из них находится в System.Windows.Forms
другой в System.Windows.Controls
, Первый дает доступ к модели DOM, но предназначен для приложений Forms (если я правильно понимаю, это определенно не то, что у меня есть). Второй добавляется по умолчанию, если вы добавляете контроллер в xaml, но он не дает доступа к DOM.
Итак, как мне получить доступ к модели DOM из WebBrowser для Surface? Я очень плохо знаком с технологиями C# и Microsoft, поэтому прошу прощения, если мой вопрос неясен или очевиден.
1 ответ
Для System.Windows.Controls.WebBrowser
Класс вы можете использовать свойство Document. Добавьте ссылку mshtml к вашему проекту, которая должна быть доступна, щелкнув правой кнопкой мыши на проекте и выбрав Add Reference, и вы сможете преобразовать его в mshtml.IHTMLDocument2.
mshtml.IHTMLDocument2 htmlDoc = webBrowser.Document as mshtml.IHTMLDocument2;
// do something like find button and click
htmlDoc.all.item("testBtn").click();