Можно ли встраивать Gecko или Webkit в форму Windows, как WebView? - PullRequest
67 голосов
/ 25 августа 2008

Я хотел бы знать, существует ли такая вещь, как 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.

Цитировать письмо напрямую:

Вот некоторые подробности о компоненте, которые могут быть полезны:

  1. DotNetBrowser основан на Chromium, поэтому поддерживает HTML5, CSS3, JS и последние веб-стандарты. Базовая версия библиотеки Chromium регулярно обновляется.
  2. Компонент подходит для WPF, а также для настольных приложений Windows Forms и работает как для C #, так и для VB.NET.
  3. Библиотека лицензируется на коммерческой основе, однако бесплатные лицензии предоставляются для Open Source и академических проектов.

Отказ от ответственности: Я не использовал этот DotNetBrowser, поскольку больше не занимаюсь разработкой Windows, но, возможно, стоит проверить, ищете ли вы решение этой проблемы.

Ответы [ 10 ]

47 голосов
/ 28 августа 2008

http://code.google.com/p/geckofx/

Это хорошая версия Gecko в оболочке .NET

10 голосов
/ 25 августа 2008

Это, конечно, возможно. Все, что вам нужно сделать, это зарегистрировать элемент управления Mozilla ActiveX (я полагаю, mozctlx.dll), и вы можете перетащить его в форму как любой элемент управления ActiveX. Интерфейс программирования аналогичен (но не идентичен) интерфейсу IE, и в некоторых случаях вы даже можете использовать управляемую библиотеку Microsoft.MSHTML.dll для управления.

Я считаю, что это упаковано с Firefox. Если нет, то вы можете получить только встраиваемые фрагменты от Mozilla. Просто выполните поиск в Google для элемента управления Mozilla ActiveX или Mozilla Embedded C #, и это поможет вам выбрать правильный путь.

9 голосов
/ 18 февраля 2011

GeckoFX больше не обновляется. Альтернативой является оболочка MozNet XulRunner от Se7en Soft. MozNet имеет массу функций, которых нет у GeckoFX, и в настоящее время он активно обновляется и поддерживается.

8 голосов
/ 22 февраля 2011

Я хотел бы отметить, что всем, кто хочет встраивать Gecko в свои приложения, проект GeckoFX, похоже, был заброшен его создателями (Skybound Software). MozNET, хотя ранее основывался на GeckoFX, sorta 'поднял мяч и побежал с ним. Он обладает полной способностью печатать, выполнять предварительный просмотр и позволяет настраивать все это через собственный диалог печати Windows, даже - и многое другое .

4 голосов
/ 13 февраля 2016

Обновление 2016:

BrowseEmAll.Gecko

Компонент .Net, который можно использовать для интеграции движка Firefox в ваше приложение .Net. Это основано на Geckofx , но в отличие от текущей версии Geckofx, это будет работать с нормальной версией сборки Firefox. Чтобы использовать Geckofx, вам нужно собрать Firefox самостоятельно. Опять же коммерческая поддержка доступна, но сам компонент полностью с открытым исходным кодом .

(Полное раскрытие информации: я работаю в этой компании, поэтому беру все, что я говорю, с долей соли)

4 голосов
/ 06 октября 2011

OpenWebKitSharp - это оболочка для движка WebKit (ночная) и очень продвинутая. Посмотрите здесь (раздел OpenWebKitSharp): http://code.google.com/p/open-webkit-sharp/

3 голосов
/ 31 октября 2011

По состоянию на 30 октября 2011 года появилась новая информация, добавляемая со времени предыдущих сообщений. В частности, хотя Skybound прекратила поддерживать свою версию, существует по крайней мере один активно поддерживаемый бесплатный форк с открытым исходным кодом.

Я использую форк Хиндла в BitBucket, который благодаря своему инструменту, который анализирует XpCom idls и создает обертки c #, быстро обновляется с поддержкой каждой новой версии Firefox / Gecko.

См. этот пост для обзора других вариантов.

3 голосов
/ 25 августа 2008

@ Мартин: Да, версия Адама Локка устарела. Но это потому, что отдельное распространение не требуется. Теперь он построен с остальной частью кодовой базы Mozilla.

Если вы скачаете Prism (то есть XulRunner), это даст вам базу, которую вы можете настроить в соответствии со своими потребностями, включая последнюю версию элемента управления (в каталоге \ Prism \ xulrunner вы найдете mozctlx .dll).

@ Грег: На самом деле это элемент управления ActiveX. Кстати, все элементы управления ActiveX являются элементами управления COM. ActiveX построен на COM.

1 голос
/ 19 мая 2009

Я верю, что «Gecko FX» [1] - это то, что вам нужно.

Цитировать с сайта

""» GeckoFX - это элемент управления Windows Forms, написанный на чистом, закомментированном C #, который встраивает браузерный элемент Mozilla Gecko в любое приложение Windows Forms. Он также содержит простую модель классов, обеспечивающую доступ к HTML и CSS DOM. "" "

1) Я не могу опубликовать ссылку, так как "новым пользователям запрещено добавлять гиперссылки". Выполните поиск "geckofx" в коде Google.

1 голос
/ 25 августа 2008

Кроме того, если вы обнаружите, что используете Gtk вместо Windows.Forms, существует набор из острых веб-пакетов, который позволяет легко встраивать WebView в приложения Gtk #.

...