Ich möchte den aktuellen Gecko in mein WPF-Projekt einbetten. Ich weiß, dass es die Möglichkeit mit dem Winforms-Host und der Skybound-Gecko-Bibliothek gibt.
Aber ich verwende nicht das Standard-WPF-Theme für meine Anwendung. Es ist ein anderer und die Bildlaufleiste des Steuerelements wird nicht gestylt. Außerdem ist dies eine alte Bibliothek, die für Firefox 3 entwickelt wurde.
Welche ist die beste Bibliothek / Strategie, um den aktuellen Gecko in WPF zu verwenden?
Hier ist meine Antwort. Wie von Roman gesagt, ist Gecko Winforms-basiert, nicht WPF-basiert und muss daher über den WindowsFormsHost eingebunden werden.
Nachdem Sie das Visual Studio-Projekt erstellt haben, installieren Sie das Gecko-Paket über NuGet mit dem Befehl: Install-Package Geckofx45
Stellen Sie sicher, dass die Referenzen WindowsFormsIntegration und System.Windows.Forms Ihrem Projekt hinzugefügt wurden.
Setzen Sie in Ihrem Konfigurationsmanager Ihre Konfiguration auf 32-Bit, um die Compiler-Warnungen loszuwerden.
Aktualisieren Sie MainWindow.xaml 'Grid', um ihm einen Namen und den Handler für das Ereignis 'Loaded' zu geben
%Vor%
Ändern Sie MainWindow.xaml.cs, um den Gecko einzubinden, und navigieren Sie zu einer Seite beim Laden:
%Vor%Ich habe Schwierigkeiten, den SO-Code-Editor zu verwenden. Für detailliertere Erklärungen und Screenshots siehe Blogseite .
Das ist eine alte Frage, aber ich habe eine Pseudo-Lösung gefunden, um GeckoFX als XAML-Tag hinzuzufügen, wie zum Beispiel:
%Vor%Dies kann erreicht werden, indem man das Ganze einfach in ein UserControl einpackt, wie zum Beispiel:
XAML:
%Vor%C #:
%Vor%Jetzt können Sie das Tag in WPF verwenden, in demselben Projekt, in dem das UserControl existiert.
Ich habe versucht, dies als eine Kontrolle in einer Bibliothek zu arbeiten, so dass ich es leicht zu jedem anderen Projekt / Lösung portieren kann, aber es gibt mir einen Fehler über mozglue.dll fehlt. Ich vermute das liegt an der Xpcom.Initialize ("Firefox") aber ich muss weiter nachforschen.