转换简单的HTML到RichTextBlock(Convert simple HTML to a R

2019-07-04 15:09发布

我开始使用Windows 8,我试图将HTML转换成一个RichTextBlock

我已阅读 ,我可以使用此功能: HtmlUtilities.ConvertToTextTextBlock ,但我不能找到一种方法,在使用此功能RichTextBlock

从我的理解,并试图我不能延长的RichTextBlock ,所以我不能应用此功能,每次一个RichTextBlock被调用。

另外,我无法找到任何方式绑定文本到RichTextBlock和建设一个解析器只是为了简单的HTML(我只想段落和斜体/加粗)似乎矫枉过正。 另外,我不知道在哪里,因为我对我应该这样做解析RichTextBlock似乎unextendable。

我不能使用WebView ,因为我需要的透明度(从我读过的WebView没有它 )。

编辑

@mydogisbox让我看到了我是越来越太远了我的研究。

我可以使用HtmlUtilities.ConvertToText中,我可以在绑定属性的getter RichTextBlock 。 我无法把它,因为我试图做<Run Text="{Binding TextHTML}" />没有<Paragraph>标记。

然而HtmlUtilities.ConvertToText不保留斜体或加粗。 只有几段:/。

Answer 1:

我结束了使用GitHub上缴费包从HTML转换为RickTextBlock。

Basiclly你只需要打开包管理器控制台(工具>库包管理器>软件包管理器控制台)和安装包运行Install-Package RichTextBlock.Html2Xaml

然后,你打开RichTextBlockProperties.cs,你有你需要复制的行。 在我来说,我不得不添加命名空间:

xmlns:rtbx="using:EventTests.Common"

然后你可以绑定你的财产有使用HTML:

<RichTextBlock rtbx:Properties.Html="{Binding ...}"/>

一些问题和一些解决方案

我有这个库中发现的一个问题是如何处理没有div的简单的HTML。 喜欢:

<p>Testing <i>italic</i> and something more.</p>
<p>More testing </p>

这将打印:

测试斜体和更多的东西。
更多的测试

不过,我想是这样的:

测试斜体和更多的东西。

更多的测试

所以我不得不来包装一个div第二段(和除第一段落都可以包裹)。

<p>Testing <i>italic</i> and something more.</p>
<div><p>More testing </p></div>

如果您缠绕第一段,那么你将有一个额外的新生产线。

到目前为止,这是我已经找到了最好的解决方案。 如果你找到更好的我apreciate它,因为我测试和学习。 如果你找到一个更好的解决办法,我会接受你的。

小心点

如果你有相同的符号,这种做法会崩溃“<”,“&”在你的HTML或。 我建议你更换这些字符您尝试使用这个库前。



文章来源: Convert simple HTML to a RichTextBlock