Встраивание веб-браузера в форму WPF с адресной строкой + кнопками - PullRequest
0 голосов
/ 05 апреля 2011

Я хотел бы встроить веб-браузер в приложение WPF. Браузер должен выглядеть как обычный браузер с адресной строкой, кнопками «назад» и «вперед» и строкой состояния. Есть ли способ, как это можно было бы легко написать на XAML, с прямой привязкой данных адреса к текстовому полю, с прямой маршрутизацией событий от кнопок к объекту веб-браузера и включением обратно?

1 Ответ

0 голосов
/ 05 апреля 2011

Почему бы и нет? Здесь и здесь загружены некоторые скриншоты из нашего приложения, которое имеет WebModule внутри и может работать как браузер.

В нашей реализации мы использовали элемент управления Windows Forms WebBrowser в качестве движка браузера и MVVM в качестве шаблона связи. Модель имеет навигационные команды (вперед, назад, ...), которые вызывают соответствующие события. View обрабатывает эти события и делегирует запрошенные действия внутреннему компоненту WebBrowser. Кроме того, представление обрабатывает события WebBrowser (NewWindow, DocumentCompleted, Navigating, Navigated) и устанавливает состояние модели.

Модель и представление вместе содержат около 500 строк кода (я не думаю, что это очень много, а вы?).

Конечно, я должен отметить, что из-за использования движка IE у этого браузера могут возникнуть проблемы на сложных веб-сайтах.

P.S. Мы не использовали System.Windows.Controls.WebBrowser, потому что он не предоставляет доступ к событию NewWindow.

P.P.S. Я разместил этот ответ из браузера в нашем приложении WPF. Удачи!

...