The best way to display Html is to use WebView, but if you want to convert it into text that RichTextBlock can display, this may be more complicated.
Let me briefly explain the idea:
1. Load Html and turn it into a parseable entity.
In the nuget package manager, you can find some related Html parsing packages, search Html to download the most popular package.
2. Parse the Html document and generate the corresponding Block or Inline based on the tag type by recursion
The recursive method is to check whether the Tag currently being parsed has children, and if so, repeat the parse method.
3. Write conversion methods for various tags
RichTextBlock cannot be converted into corresponding styled text according to Html tags, so this needs to be written by ourselves.
Take <b> ... </b> as an example, this is a bold inline text. You can use this method when converting:
private static Inline GenerateBold(HtmlNode node)
{
if (string.IsNullOrEmpty(node.InnerText.Trim()))
return null;
Span s = new Span();
s.Inlines.Add(new Run() { Text = node.InnerText.Trim(), FontWeight = FontWeights.Bold });
return s;
}
The text types supported by RichTextBlock are under the Windows.UI.Xaml.Documents namespace, which are mainly divided into Inline and Block. If you want to see all the text types in this namespace, you can view this document
Converting Html tags to text types supported by RichTextBlock requires one-to-one conversion. In addition, you may not be able to fully reproduce the effect of CSS on styles in RichTextBlock (this means that you also need to build a CSS parser).
If you are going to do this great job, I hope my suggestions can help you.
Best regards.