Можно ли встраивать Gecko или Webkit в форму Windows, как WebView?
Я хотел бы знать, есть ли такая вещь, как Gecko.NET;) Я имею в виду, точно так же, как мы можем встроить WebView, и это "экземпляр" IE7 в любом приложении Windows Forms (и сказать это navigateto(fancy_url);
). Я хотел бы использовать Firefox или WebKit.
Кто-нибудь пробовал это?
ОБНОВЛЕНИЕ: Пожалуйста, имейте в виду, что, хотя есть возможность встроить Gecko, используя упомянутые элементы управления, все еще невозможно печатать при использовании Gecko.
ОБНОВЛЕНИЕ Март 2010 года: печать с использованием GeckoFX по-прежнему невозможна, однако существует несколько методов, которых может быть достаточно в зависимости от того, что вы пытаетесь сделать. Смотрите: http://geckofx.org/viewtopic.php?id=796 для получения дополнительной информации.
ОБНОВЛЕНИЕ Октябрь 2013: я больше не занимаюсь разработкой Windows, поэтому меня это не интересует, но похоже, что разработку Gecko можно найти здесь: https://bitbucket.org/geckofx и, кажется, она недавно обновлена. Оставив это здесь для будущих разработчиков Windows;)
ОБНОВЛЕНИЕ Январь 2017: Я получил электронное письмо от компании под названием TeamDev. Они создали компонент браузера.NET на базе Chromium под названием "DotNetBrowser", который можно использовать для отображения современных веб-страниц в приложениях Windows Forms.
Чтобы цитировать письмо напрямую:
Вот некоторые подробности о компоненте, которые могут быть полезны:
- DotNetBrowser основан на Chromium, поэтому поддерживает HTML5, CSS3, JS и новейшие веб-стандарты. Основная версия библиотеки Chromium регулярно обновляется.
- Компонент подходит как для WPF, так и для настольных приложений Windows Forms, и работает как для C#, так и для VB.NET.
- Библиотека лицензируется на коммерческой основе, однако бесплатные лицензии предоставляются для Open Source и академических проектов.
Отказ от ответственности: я не использовал этот DotNetBrowser, поскольку я больше не занимаюсь разработкой Windows, но, возможно, стоит проверить, ищете ли вы решение для этого.
10 ответов
http://code.google.com/p/geckofx/
Это хорошая версия Gecko в.NET
Это конечно возможно. Все, что вам нужно сделать, это зарегистрировать элемент управления Mozilla ActiveX (я полагаю, mozctlx.dll), и вы можете перетащить его в форму как любой элемент управления ActiveX. Интерфейс программирования аналогичен (хотя и не идентичен) интерфейсу IE, и в некоторых случаях вы даже можете использовать управляемую библиотеку Microsoft.MSHTML.dll для управления.
Я считаю, что это поставляется с Firefox. Если нет, то вы можете получить только встраиваемые фрагменты от Mozilla. Просто выполните поиск в Google для элемента управления Mozilla ActiveX или Mozilla Embedded C#, и это поможет вам выбрать правильный путь.
GeckoFX больше не обновляется. Альтернативой является обертка MozNet XulRunner от Se7en Soft. MozNet имеет массу функций, которых нет у GeckoFX, и в настоящее время он активно обновляется и поддерживается.
Я просто хотел бы отметить, что всем, кто хочет встроить Gecko в свои приложения, проект GeckoFX, похоже, был заброшен его создателями (Skybound Software). MozNET, хотя ранее основывался на GeckoFX, sorta'поднял мяч и побежал с ним. Он обладает полной способностью печатать, выполнять предварительный просмотр и позволяет настраивать все это с помощью собственного диалогового окна печати Windows, и даже намного больше.
OpenWebKitSharp - это оболочка для движка WebKit (ночная) и очень продвинутая. Посмотрите здесь (раздел OpenWebKitSharp): http://code.google.com/p/open-webkit-sharp/
Обновление 2016:
Компонент.Net, который можно использовать для интеграции движка Firefox в ваше приложение.Net. Это основано на Geckofx, но в отличие от текущей версии Geckofx, это будет работать с обычной версией Firefox. Чтобы использовать Geckofx, вам нужно собрать Firefox самостоятельно. Опять же коммерческая поддержка доступна, но сам компонент полностью с открытым исходным кодом.
(Полное раскрытие: я работаю в этой компании, поэтому примите все, что я скажу, с долей соли)
@Martin: Да, версия Адама Локка устарела. Но это потому, что отдельное распространение не требуется. Он построен с остальной частью кодовой базы Mozilla.
Если вы загрузите Prism (то есть XulRunner), это даст вам базу, которую вы можете настроить в соответствии со своими потребностями, включая последнюю версию элемента управления (в каталоге \Prism\xulrunner вы найдете файл mozctlx.dll),
@ Грег: На самом деле, это элемент управления ActiveX. Кстати, все элементы управления ActiveX являются элементами управления COM. ActiveX построен на COM.
По состоянию на 30 октября 2011 года появилась новая информация для добавления со времени предыдущих сообщений. В частности, хотя Skybound прекратила поддерживать свою версию, существует по крайней мере один активно поддерживаемый бесплатный форк с открытым исходным кодом.
Я использую форк Хиндла в BitBucket, который благодаря своему инструменту, который анализирует XpCom idls и создает обертки C#, быстро обновляется с поддержкой каждой новой версии Firefox/Gecko.
Смотрите этот пост для обзора других вариантов.
Я верю, что "Gecko FX"[1] - это то, что вам нужно.
Цитировать с веб-сайта
""" GeckoFX - это элемент управления Windows Forms, написанный на чистом закомментированном C#, который встраивает элемент управления браузера Mozilla Gecko в любое приложение Windows Forms. Он также содержит простую модель классов, обеспечивающую доступ к HTML и CSS DOM." ""
1) Я не могу опубликовать ссылку, так как "новым пользователям запрещено добавлять гиперссылки". Выполните поиск по запросу "geckofx" в коде Google.
Кроме того, если вы обнаружите, что используете Gtk вместо Windows.Forms, существует архив с острым набором webkit, который позволяет легко встраивать WebViews в приложения Gtk#.