发布于 2020-02-07 01:13:04
显示Html的最好方法是使用WebView,但是如果您想将它转换为RichTextBlock可以显示的文本,这可能要复杂得多。
让我简单地解释一下这个想法:
1.加载Html并将其转换为可解析的实体.
在nuget包管理器中,您可以找到一些相关的Html解析包,搜索Html下载最流行的包。
Block 2.解析Html文档并通过递归根据标记类型生成相应的或
递归方法是检查当前正在解析的Tag是否有子元素,如果有,则重复解析方法。
3.各种标记的写转换方法
RichTextBlock不能根据Html标签转换成相应的样式文本,因此这需要我们自己编写。
以<b> ... </b>为例,这是一个粗体的内联文本。在转换时可以使用此方法:
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;
}RichTextBlock支持的文本类型位于Windows.UI.Xaml.Documents命名空间下,主要分为Inline和Block。如果要查看此命名空间中的所有文本类型,可以查看此文档。
将Html标记转换为RichTextBlock支持的文本类型需要一对一的转换.此外,您可能无法完全再现CSS对RichTextBlock中样式的影响(这意味着您还需要构建一个CSS解析器)。
如果你要做这个伟大的工作,我希望我的建议能帮助你。
诚挚的问候。
https://stackoverflow.com/questions/60092073
复制相似问题