我开始使用Windows 8,我试图将HTML转换成一个RichTextBlock
。
我已阅读 ,我可以使用此功能: HtmlUtilities.ConvertToText
在TextBlock
,但我不能找到一种方法,在使用此功能RichTextBlock
!
从我的理解,并试图我不能延长的RichTextBlock
,所以我不能应用此功能,每次一个RichTextBlock
被调用。
另外,我无法找到任何方式绑定文本到RichTextBlock
和建设一个解析器只是为了简单的HTML(我只想段落和斜体/加粗)似乎矫枉过正。 另外,我不知道在哪里,因为我对我应该这样做解析RichTextBlock
似乎unextendable。
我不能使用WebView
,因为我需要的透明度(从我读过的WebView没有它 )。
编辑
@mydogisbox让我看到了我是越来越太远了我的研究。
我可以使用HtmlUtilities.ConvertToText
中,我可以在绑定属性的getter RichTextBlock
。 我无法把它,因为我试图做<Run Text="{Binding TextHTML}" />
没有<Paragraph>
标记。
然而HtmlUtilities.ConvertToText
不保留斜体或加粗。 只有几段:/。
我结束了使用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或。 我建议你更换这些字符您尝试使用这个库前。