如何使用UWP应用程序中的XAML在文本块中显示HTML内容?
在JSON响应中:如何使用UWP应用程序中的XAML在文本块中显示HTML内容?,html,xaml,uwp,Html,Xaml,Uwp,在JSON响应中: results = "<p>This is a <b>paragraph</b></p><p>New paragraph with symbols > tags</p>"; 您可以使用RichTextBlock更容易地将HTML DOM与XAML输出进行匹配。不幸的是,没有内置API将HTML转换为控件的等效XAML 您可以使用HtmlAgilityPack将HTML解析为已知标记,并手
results = "<p>This is a <b>paragraph</b></p><p>New paragraph with symbols > tags</p>";
您可以使用
RichTextBlock
更容易地将HTML DOM与XAML输出进行匹配。不幸的是,没有内置API将HTML转换为控件的等效XAML
您可以使用HtmlAgilityPack
将HTML解析为已知标记,并手动将项目添加到RichTextBlock.Inlines
中。在这个过程中有一个古老的概念,但它仍然适用。其中一个例子是:
private static Inline GenerateBlockForNode(HtmlNode node)
{
switch (node.Name)
{
case "div":
return GenerateSpan(node);
case "p":
case "P":
return GenerateInnerParagraph(node);
case "img":
case "IMG":
return GenerateImage(node);
...
然后,各个GenerateXXX
方法生成适当的内联线:
private static Inline GenerateSpan(HtmlNode node)
{
Span s = new Span();
AddChildren(s, node);
return s;
}
最简单的解决方案是使用中的代码,它实现了大量的标记转换,也许您可以将转换器复制粘贴到您的项目中并开始运行。meis不支持这一点。在xaml for UWP app中使用html标记元素的任何方法?@umaraja哪一部分不受支持?不幸的是,HTML不能直接使用(如果您不想只显示Web视图),粗体标记不受支持String HTML=“hi这是新行
第二行第三行”;var Data=Windows.Data.Html.htmluties.ConvertToText(Html);
private static Inline GenerateBlockForNode(HtmlNode node)
{
switch (node.Name)
{
case "div":
return GenerateSpan(node);
case "p":
case "P":
return GenerateInnerParagraph(node);
case "img":
case "IMG":
return GenerateImage(node);
...
private static Inline GenerateSpan(HtmlNode node)
{
Span s = new Span();
AddChildren(s, node);
return s;
}