Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用UWP应用程序中的XAML在文本块中显示HTML内容?_Html_Xaml_Uwp - Fatal编程技术网

如何使用UWP应用程序中的XAML在文本块中显示HTML内容?

如何使用UWP应用程序中的XAML在文本块中显示HTML内容?,html,xaml,uwp,Html,Xaml,Uwp,在JSON响应中: results = "<p>This is a <b>paragraph</b></p><p>New paragraph with symbols &gt; tags</p>"; 您可以使用RichTextBlock更容易地将HTML DOM与XAML输出进行匹配。不幸的是,没有内置API将HTML转换为控件的等效XAML 您可以使用HtmlAgilityPack将HTML解析为已知标记,并手

在JSON响应中:

results =  "<p>This is a <b>paragraph</b></p><p>New paragraph with symbols &gt; 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;
}