【发布时间】:2012-12-05 18:02:07
【问题描述】:
我从 Windows 8 开始,我正在尝试将 HTML 转换为 RichTextBlock。
我 have read 我可以在 TextBlock 中使用此功能:HtmlUtilities.ConvertToText 但我找不到在 RichTextBlock 中使用此功能的方法!
根据我的理解和尝试 I can't extend RichTextBlock 所以我不能在每次调用 RichTextBlock 时应用这个函数。
另外,我找不到任何方法将文本绑定到 RichTextBlock 和 building a parser 只是为了简单的 HTML(我只想要段落和斜体/粗体)似乎有点矫枉过正。另外,我不知道应该在哪里进行解析,因为 RichTextBlock 似乎无法扩展。
我不能使用WebView,因为我需要透明度(根据我阅读的WebView doesn't have it)。
编辑
@mydogisbox 让我发现我的研究太过分了。
我可以在可以绑定到RichTextBlock 的属性的getter 中使用HtmlUtilities.ConvertToText。我无法绑定它,因为我试图这样做
<Run Text="{Binding TextHTML}" /> 没有 <Paragraph> 标签。
但是HtmlUtilities.ConvertToText 不保留斜体或粗体。只有段落:/。
【问题讨论】:
-
您应该能够在绑定到 RichTextBlock 的属性中调用 ConvertToText 函数。你这样做有什么问题?
-
上帝。我完全迷失在我的研究中。我遇到了
<Run Text>的问题。现在我意识到我需要一个<Paragraph>才能使用它。在看到您的评论之前,我已将其绑定并尝试使用转换器。转换器崩溃了,但在我看到你的评论后,我改变了我的财产的吸气剂,现在正在工作!但是,我发现HtmlUtilities.ConvertToText不会转换斜体/粗体。我只需要斜体、粗体和段落:/。打算更新问题。感谢您的评论。 -
如果您只需要这三个,那么也许您可以制作一个简单的解析器,将这三个内容转换为 html 中的文本,然后您可以在通过
ConvertToText运行后再次解析,将它们解析为斜体等 -
假设我做那个解析(我将把那个解决方案留到最后)。如何将“生成”树添加到 xaml?我仍然可以将解析与模型绑定和分离吗?自从我今天进入 Windows 8 后有点迷失了:p
-
我想是的。您将只有一个将 html 转换为您的 html 类型的方法,然后将另一个方法将
ConvertToText的结果转换为 RichTextBox 可以显示的内容。应该只是在属性中链接方法调用。
标签: html wpf xaml windows-8 richtextblock