CozyRSS 開発記録 17-Html2Xaml
前回は RssContentView の表示を行いましたが、RSS で返される説明 (概要) には HTML はおろか改行もありません内の記述子。行の折り返しは、制限されたサイズと自動行折り返しの説明を追加するだけで簡単に解決できます。
TextWrapping="Wrap" Margin="10 12 10 10"
2. wpf で HTML を表示する方法A. HTML を直接表示する
B. HTML を他のコンテンツに変換して表示する
HTML を直接表示する方法について説明します。さらにいくつかの実現可能な解決策があります。
A.1. wpf の制御
A.2. winform の WebBrowser スペースを使用する
A.3. cef (CefSharp ライブラリ) を使用する
これらのメソッドでは、HTML コンテンツを直接ロードできるものと、一時 HTML ファイルを構築する必要があるものがあります。どちらも効果を実現でき、HTML を適切にサポートしますが、Web コントロールと WPF のネイティブ レンダリング コントロールを完全には統合できないという欠点もあります。
HTML を他のコンテンツに変換して表示するには、いくつかの実現可能な解決策があります:
B.1. md に変換してから表示します (Html2Markdown ライブラリ)
B.2. xaml に直接変換します
最後に、結局のところ、xaml のドキュメント レイアウトを表現する能力は html に劣りません。もっと優れた参照ライブラリである RichTextBlock.Html2Xaml がありますが、これは WinRt 用です。苦労の末、やっとwpfで使えるライブラリHtmlTextBlockを見つけました。
3. HtmlTextBlock を使用します
nuget から HtmlTextBlock を追加し、HTML を表示するために HtmlTextBlockTest を参照するコントロールを追加します。HTML 内のマークが山括弧 で囲まれており、HtmlTextBlock であるため、効果に問題があります。 parses は角括弧 [b] なので、変換する必要があります。また、加工はせず、スペースに変換させていただきます。最後に、関連するコードとエフェクトは次のとおりです。
まだ十分ではないように感じますが、HtmlTextBlock もオープンソースなので、将来的には別の Html2Xaml ライブラリを自分で構築するかもしれません。