首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用RichTextBlock显示html格式

如何使用RichTextBlock显示html格式
EN

Stack Overflow用户
提问于 2020-02-06 09:51:27
回答 1查看 628关注 0票数 2

我目前正在Windows 10 UWP项目上工作。我正在从服务器获得一个HTML文件,我想在UWP应用程序中显示这一点。我想使用RichTextBlock而不是web视图。我尝试了使用Html2Xaml库的github代码这里,但是当我试图将数据绑定到RichTextBlock时遇到了错误。我找到了,但它只包含将rtf转换为html的内容。

我只是想把html转换成RichTextBlock,并在UWP app.Please中显示html文件,有人建议如何用RichTextBlock实现我的需求。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-02-07 01:13:04

显示Html的最好方法是使用WebView,但是如果您想将它转换为RichTextBlock可以显示的文本,这可能要复杂得多。

让我简单地解释一下这个想法:

1.加载Html并将其转换为可解析的实体.

在nuget包管理器中,您可以找到一些相关的Html解析包,搜索Html下载最流行的包。

Block 2.解析Html文档并通过递归根据标记类型生成相应的

递归方法是检查当前正在解析的Tag是否有子元素,如果有,则重复解析方法。

3.各种标记的写转换方法

RichTextBlock不能根据Html标签转换成相应的样式文本,因此这需要我们自己编写。

<b> ... </b>为例,这是一个粗体的内联文本。在转换时可以使用此方法:

代码语言:javascript
复制
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命名空间下,主要分为InlineBlock。如果要查看此命名空间中的所有文本类型,可以查看此文档

将Html标记转换为RichTextBlock支持的文本类型需要一对一的转换.此外,您可能无法完全再现CSS对RichTextBlock中样式的影响(这意味着您还需要构建一个CSS解析器)。

如果你要做这个伟大的工作,我希望我的建议能帮助你。

诚挚的问候。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60092073

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档