Domanda

Diciamo che sono pazzo e voglio implementare un HTML di base motore di rendering con C #. Vorrei utilizzare controlli WPF per visualizzare il layout HTML.

Mentre non v'è nulla da guadagnare con una simile idea, ho ancora voglia di provarlo! Così che cosa le biblioteche, i progetti e la documentazione potrebbero aiutarlo ad ottenere questo fatto?

È stato utile?

Soluzione

Dal momento che le funzionalità di WPF XAML sono un superset di funzionalità di HTML, più o meno tutto ciò che sarà necessario fare è mappare l'uno all'altro.

Se il vostro ingresso è XHTML si può semplicemente utilizzare XSLT o LINQ to XML per ottenere i dati.

Se si utilizza XSLT si finirà con una XAML che si analizza con XamlReader.Parse () per ottenere un oggetto UIElement è possibile aggiungere alla vostra finestra o altro contenitore WPF. Questo è probabilmente più lavoro rispetto all'utilizzo di LINQ to XML perché XSLT è relativamente limitata.

Se si utilizza LINQ to XML è possibile scegliere per la produzione di XAML e quindi analizzare come nel caso XSLT, oppure si può semplicemente creare direttamente l'albero degli oggetti. Se si crea XAML utilizzando LINQ to XML, vorrei scrivere il codice traduzione reale in VB.NET invece di C # che è il mio normale lingua preferita. la sintassi di VB.NET "letterale XML" fa la parte del lavoro più facile.

Se l'input è HTML arbitrario e non XHTML, vorrei utilizzare una libreria di terze parti per convertirlo in XHTML e lavorare da lì. Gestione di tutte le stranezze di parsing di HTML è un sacco di lavoro e probabilmente per lo più estranei al vostro obiettivo reale.

Se si desidera solo per visualizzare HTML senza trasformarla in oggetti di WPF, è possibile utilizzare il controllo Frame.

Altri suggerimenti

rendering HTML sarà facile basta convertire in file XAML e rendere dovrebbe essere abbastanza veloce. Si otterrà un browser accelerato HW con bella zoom e font.

Ma come si fa a gestire css - è necessario creare stili (Yuck)? DHTML, HTML5 e Java script .. Così molte pagine ora richiedono questi thinsg non puoi nemmeno vederlo.

Il modo più semplice per Java script è quello di utilizzare il parser tutti usano, ci può essere un modo migliore (e Java Script per compilatori CIL?)

html parser, con una mappatura digitato alle alternative XAML, interessante ... forse è possibile utilizzare ANTLR per il parser lexer http://www.antlr.org/ , più specificamente Ecco un interessante CodeProject, progetto http://www.codeproject.com/KB/cs/TagBasedHtmlParser.aspx , si potrebbe forse provare a trasformare la vostra html all'interno di XAML, che sarebbe molto interessante:)

Credo che questo progetto è esattamente ciò che si mira a raggiungere:
https://htmlrenderer.codeplex.com/
Forse si potrebbe lavorare su di esso e aggiungere il supporto HTML 5 e CSS 3!

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top