myCSharp.de - DIE C# und .NET Community
Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 
 | Suche | FAQ

» Hauptmenü
myCSharp.de
» Startseite
» Forum
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Suche
» Regeln
» Wie poste ich richtig?
» Forum-FAQ

Mitglieder
» Liste / Suche
» Wer ist wo online?

Ressourcen
» openbook: Visual C#
» openbook: OO
» Microsoft Docs

Team
» Kontakt
» Übersicht
» Wir über uns

» myCSharp.de Diskussionsforum
Du befindest Dich hier: Community-Index » Diskussionsforum » Entwicklung » GUI: WPF und XAML » Webbrowser Control basierend auf Firefox?
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | Thema zu Favoriten hinzufügen

Antwort erstellen
Zum Ende der Seite springen  

Webbrowser Control basierend auf Firefox?

 
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
Mazo Mazo ist männlich
myCSharp.de-Mitglied

Dabei seit: 17.08.2006
Beiträge: 255
Entwicklungsumgebung: VS10, Win7, WP7.1/7.5
Herkunft: Sachsen


Mazo ist offline

Webbrowser Control basierend auf Firefox?

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hallo,
kennt ihr ein Webbrowser Control (für WPF), was den Firefox Browser als grundlage nutzt und nicht den IE?
Vorallem hinsichtlich welche Cookies genutzt werden.

Gruß MAzo
30.10.2008 16:56 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
manunidi
myCSharp.de-Mitglied

Dabei seit: 08.04.2008
Beiträge: 221
Entwicklungsumgebung: VS 2005 Prof / VS 2008 Prof
Herkunft: Niederbayern


manunidi ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Habs sowas auch noch nie gemacht, aber finde es interessant!

Schau die das hier mal an, da hat einer das umgesetzt, was du auch willst, und den SourceCode gibts zum downloaden smile

 http://www.bengoodger.com/work-resources...ects/manticore/
30.10.2008 20:30 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Mazo Mazo ist männlich
myCSharp.de-Mitglied

Dabei seit: 17.08.2006
Beiträge: 255
Entwicklungsumgebung: VS10, Win7, WP7.1/7.5
Herkunft: Sachsen

Themenstarter Thema begonnen von Mazo

Mazo ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

scheint recht umfangreich fröhlich
Danke für dein Tip
30.10.2008 20:42 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Zwischen diesen beiden Beiträgen liegt mehr als ein Monat.
HansLecker
myCSharp.de-Mitglied

Dabei seit: 10.12.2008
Beiträge: 5
Entwicklungsumgebung: Visual Studio 2008
Herkunft: München


HansLecker ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Unter geckofx.org findet man einen Wrapper für Firefox, sodass man den Firefox wie ein UserControl einbetten kann.

GeckoFX is an open-source component which makes it easy to embed Mozilla Gecko (Firefox) into any .NET Windows Forms application. Written in clean, fully commented C#, GeckoFX is the perfect replacement for the default Internet Explorer-based WebBrowser control.

Beispielcode für WindowsForms und WPF gibt es hier:
 http://lecker-kanzlei.spaces.live.com/bl...34D11!171.entry

HL
10.12.2008 06:38 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Zwischen diesen beiden Beiträgen liegen mehr als 3 Monate.
anakin87 anakin87 ist männlich
myCSharp.de-Mitglied

Dabei seit: 12.03.2009
Beiträge: 37
Herkunft: AUT


anakin87 ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

ähm ich hab da ne frage dazu
mit dem navigate kann man url's ansurfen, ok soweit so klar...
aber wie kann ich den firefox dazu bringen, dass er mir eine html-seite anzeigt
die sich in einer string-variable befindet?

beste grüße
16.03.2009 14:17 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
HansLecker
myCSharp.de-Mitglied

Dabei seit: 10.12.2008
Beiträge: 5
Entwicklungsumgebung: Visual Studio 2008
Herkunft: München


HansLecker ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Eine einfach Lösung gibt es dafür leider nicht!

Dieser Ansatz funktioniert nämlich nicht:
Document.DocumentElement.InnerHtml = "<html><head></head><body>Test</body></html>";

Also bleiben nur die Wege über das Laden einer temporäre Datei oder die Verwendung eines miniWebServers in der Anwendung.

HL
16.03.2009 15:36 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
anakin87 anakin87 ist männlich
myCSharp.de-Mitglied

Dabei seit: 12.03.2009
Beiträge: 37
Herkunft: AUT


anakin87 ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

wie? hab ich dich da grade richtig verstanden?
ich brauch nen mini-webserver um daten die sich schon im ram befinden in
das geckofx-plugin zu laden?
ja das hab ich leider auch schon bitter erfahren dass es so nicht funkt....
mein problem ist das die anwendung sehr performant bleiben soll und der IE mir zu
langsam rendert, darum kam ich auf die geckofx-idee.
aber wenn ich die files auf der platte zwischenspeicher dann wirds erst recht wieder
langsamer - hm... sieht nach einem kleinen dilemma aus

tut für die mini-webserver-idee würd mich aber denoch interessieren!

beste grüße

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von anakin87 am 16.03.2009 16:05.

16.03.2009 16:04 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
pdelvo pdelvo ist männlich
myCSharp.de-Mitglied

avatar-3354.png


Dabei seit: 02.11.2008
Beiträge: 1.346
Entwicklungsumgebung: Visual Studio 2012 Prof.


pdelvo ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

 Kleiner Webserver

den müsstest du anpassen, so, das er die daten aus dem Ram versendet. ob das aber performant ist. kp. Ich glaub nicht dran.

Gruß pdelvo
16.03.2009 16:10 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
HansLecker
myCSharp.de-Mitglied

Dabei seit: 10.12.2008
Beiträge: 5
Entwicklungsumgebung: Visual Studio 2008
Herkunft: München


HansLecker ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Du könntest folgenden Servercode verwenden und einen HttpListener für Deine Zwecke implementieren.

 http://webserver.codeplex.com/

In Tutorial1 ist die Implementierung für einen solchen HttpListener geschildert.

Aber mein Einschätzung ist, dass dieser Lösungsweg nochmal ein Stück Rechenleistung kostet und ein Geschwindigkeitsvorteil im Vergleich zum Lösungsweg über den IE fragwürdig ist.

HL
16.03.2009 16:34 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
anakin87 anakin87 ist männlich
myCSharp.de-Mitglied

Dabei seit: 12.03.2009
Beiträge: 37
Herkunft: AUT


anakin87 ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

ich hoff die antwort kommt jetzt nicht 5x wegen meiner schlechten verbindung....
thx für die beiden tuts - mit der performance dürfts ihr auch recht haben unglücklich
aber ich verstehs nicht wie man ein solche plugin erstellt und dann kann man
nicht mal direkt reinschreiben.... naja vl. kommt da noch was
sieht so aus als müsst ich mich weiterhin mit dem IE ärgern^^

beste grüße

EDIT: leute dass scheint doch zu funktionieren einen string in den geckoFX zu
schreiben

C#-Code:
geckoFX.Document.DocumentElement.InnerHtml = htmlString;

komischerweise geht das mit dem form_load nicht
aber mit einem event wie z.b tabIndexChange oder buttonClick und dann ne funktion
aufruft, die den InnerHtml-Teil ändert, funktionierts.... aber warum verwundert

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von anakin87 am 17.03.2009 17:16.

17.03.2009 08:37 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
HansLecker
myCSharp.de-Mitglied

Dabei seit: 10.12.2008
Beiträge: 5
Entwicklungsumgebung: Visual Studio 2008
Herkunft: München


HansLecker ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Man kann übrigens auch der Navigate-Methode einen String übergeben.

Ein Aufruf von Navigate könnte dann so aussehen:

tBrowser.Navigate("data:text/html,%3Ch1%3EHello%2C%20World!%3C%2Fh1%3E");

Eine kurze Erläuterung zum "data URL schema" findet man unter folgendem Link:
 https://developer.mozilla.org/en/The_data_URL_scheme

HL
17.03.2009 19:37 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
HansLecker
myCSharp.de-Mitglied

Dabei seit: 10.12.2008
Beiträge: 5
Entwicklungsumgebung: Visual Studio 2008
Herkunft: München


HansLecker ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hier noch eine kleine Ergäzung:

string tContent = "<html><head></head><body>Test</body></html>";
System.Uri tUri = new Uri("data:text/html,"+tContent);
tBrowser.Navigate(tUri.AbsoluteUri);

Dieser Code läuft auch im Forms-Load-Event.

HL
17.03.2009 21:43 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
anakin87 anakin87 ist männlich
myCSharp.de-Mitglied

Dabei seit: 12.03.2009
Beiträge: 37
Herkunft: AUT


anakin87 ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

tolle idee funktioniert auch ganz gut nur mit einer einschränkung....
kann das sein das er dann eine andere codierung verwendet?
weil so tolle zeichenkombinationen statt ö/ä/ü usw. auftauchen

auch wirft er mir teilweise exceptions das die url zu lange ist...

EDIT: nunja wegen der zu langen url wollt ich's base64 probieren
(steht was davon auf der geckofx page  http://geckofx.org/viewtopic.php?id=536)
nur dann zeigt er mit html code an, anstatt der gerenderten html-seite

Code:
1:
2:
System.Uri turi = new Uri("data:text/plain;base64," + htmlINbase64);
gFirefox.Navigate(turi.AbsoluteUri);

was mach ich nu shon wieder falsch

beste grüße

Dieser Beitrag wurde 3 mal editiert, zum letzten Mal von anakin87 am 18.03.2009 11:21.

18.03.2009 09:00 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Baumstruktur | Brettstruktur       | Top 
myCSharp.de | Forum Der Startbeitrag ist älter als 11 Jahre.
Der letzte Beitrag ist älter als 11 Jahre.
Antwort erstellen


© Copyright 2003-2020 myCSharp.de-Team | Impressum | Datenschutz | Alle Rechte vorbehalten. | Dieses Portal verwendet zum korrekten Betrieb Cookies. 20.09.2020 09:24