2012-10-26 11 views
10

Voglio mostrare HTML in stringa con qualche componente. Ora sto usando RichTextBlock e ho provato alcune estensioni per convertire html XAML o RTF ma non ha trovato alcun lavorare con WinRT. So che posso usare WebView ma non è così carino. Voglio solo fare piccoli cambiamenti per ItemDetailPage (dove viene utilizzata RichTextBlock) per mostrare agli utenti html elementare (grassetto, corsivo, link, immagini, ...).Mostrando HTML in WinRT con RichTextBlock o altro componente

C'è qualche componente o qualche modo per fare questo (non WebView)? O c'è un convertitore funzionante?

+0

che ne dite di fare vista origine nel controllo web? –

+1

Dovresti creare il tuo parser. Sembra che tu stia abbaiando dall'albero sbagliato se devi farlo. –

+1

Puoi fornire maggiori dettagli sul perché la WebView (che è IE10) non è il miglior componente per mostrare HTML? – WiredPrairie

risposta

2

Hai 2 modi

  1. costruire o ottenere il proprio codice HTML per XAML parser per utilizzare il contenuto come RichTextBox Fonte
  2. Usa WebView per visualizzare il contenuto HTML

consiglio WebView perché questo componente ha molte caratteristiche che è molto difficile da implementare come parser

  • supporto di JavaScript
  • supporto CSS
  • cattiva forma di sostegno (mondo reale) html
  • ecc

Così, in un controllo WebView è possibile utilizzare il metodo WebView.NavigateToString per visualizzare contenuti HTML memorizzati in una stringa.

Yo può, anche, modificare stringa da stili modifiche, aggiungere script, ecc come è necessario guardare a WebView costume e sentire.

NavigateToString non ha il supporto per l'associazione, ma ho scritto un articolo (spagnolo), l'insegnamento come fare utilizzando le proprietà collegate: http://blogs.msdn.com/b/juank/archive/2012/10/29/tutorial-crear-app-lector-rss-winrt-parte-7.aspx

utilizzare questo codice (plex) per l'analisi, se non si adatta esattamente si può cambiare il codice per te stesso. ;) http://html2xaml.codeplex.com/

Altrimenti si creerebbe l'ode da soli, se si vuole rompere le pagine in testo colonna (a lettura orizzontale) è necessario utilizzare RichTextBlock, uso RichTextColumns classe hepler (incluso nel Comune/cartella quando si avvia l'app dalla un modello) e prova ad analizzare HTML in XAML.

+1

Ho provato WebView e ho trovato un articolo su come legarmi e funziona, html sembra buono. Ma non voglio usarlo perché voglio mostrare principalmente il testo con i tag html. Sarebbe tag di base come grassetto, corsivo, elenchi e talvolta immagini e collegamenti. Dovrebbe mostrare articoli così lunghi e mi piace quella vista di RichTextBlock nella pagina di esempio (ItemDetailPage). Il testo è in colonne e l'utente si muove con esso in orizzontale. Non so come farlo con WebView. –

+0

Se si desidera interrompere le pagine nel testo della colonna (in lettura orizzontale), è necessario utilizzare RichTextBlock, utilizzare la classe hepler RichTextColumns inclusa in Common/cartella quando si avvia l'app da un modello e si tenta di analizzare HTML in XAML. Usa questo codice (plex) per analizzare, se non si adatta esattamente puoi cambiare il codice per il tuo. ;) http://html2xaml.codeplex.com/ Ho aggiunto questa parte alla risposta. – JuanK

+0

come passarebbe l'xaml generato da html2xaml a RichTextBlock? Ho passato il mio html a html2xaml tramite un convertitore e funziona benissimo tranne che restituisce il vero XAML che voglio rendere, quindi il testo XAML reale è quello che vedo in RichtTextBlock! Come posso mostrare questo XAML invece di usarlo come valore di testo? – SelAromDotNet

3

Alla fine mi sono stufato della mancanza di conversione da Html a Xaml supportata da WinRT e ho scritto la mia. Per i calci, l'ho messo su codeplex. Per ulteriori anche calci, e di sperimentare con NuGet, ho pubblicato lì, troppo ...

Ovviamente, questa non è la fine, tutti alla conversione Html Xaml, ma è un inizio ...

+0

Ti sei dimenticato di aggiungere qualche app di test che la mostra in azione. È praticamente inutile senza che nessuno possa provarlo rapidamente. – Pavel

+0

Ci dovrebbe essere abbastanza nel sito di codeplex per ottenere la maggior parte del modo lì. Se hai domande, c'è anche il Tracker dei problemi o le schede Discussioni. –

Problemi correlati