2012-04-02 15 views
8

Sto ascoltando l'evento LoadCompleted del browser Web WPF. Ha alcuni argomenti di navigazione che forniscono dettagli sulla navigazione. Tuttavia, e.Content è sempre null.Browser Web WPF - scarica l'HTML?

Sto prestando attenzione all'evento sbagliato qui? Come posso recuperare l'HTML appena scaricato come stringa?

Ho provato some things which I would consider hacks, ma restituiscono una stringa di HTML, anche se non era la stringa scaricata. Ad esempio, con quel metodo quando vado a una pagina che mi invia semplicemente la stringa abc, ottengo il risultato <document><body>abc</body></document> o qualcosa di simile.

Preferirei non ottenere più hack di quanto necessario per ottenere questa esecuzione.

risposta

17

Questo evento verrà attivato solo per le navigazioni di primo livello, probabilmente il motivo del tuo problema iniziale.

L'approccio che hai citato non è affatto l'hacking, è un'API ufficiale che restituisce il testo HTML (compresi tutti i tag) del documento scaricato.

dynamic doc = webBrowser.Document; 
var htmlText = doc.documentElement.InnerHtml; 

Se si desidera ottenere un testo in chiaro dal documento HTML, c'è un simple explanation come fare.

+0

Avevo quasi intenzione di utilizzare il browser Web WinForms in un controllo WindowsFormsHost, solo perché espone così tante altre proprietà, ma questo ha funzionato bene. –

+1

Perché mai hanno deciso di andare con la variabile 'dynamic'? –