Доступ к 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(); 
Другие вопросы по тегам