我正在使用Microsoft的XAML/HTML converter将HTML数据库中的HTML转换为XAML字符串。 Microsoft转换器似乎正确地格式化文本,但我遇到了将输出绑定到XAML对象的麻烦。WPF FlowDocument绑定
例如,使用下面的HTML:
<span style="font-weight: bold; font-family: Georgia; color: rgb(0, 96, 144); text-decoration: underline;">Hello world.</span>
我将得到XAML输出:
<Section xml:space="preserve" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
<Paragraph>
<Run FontWeight="bold" TextDecorations="Underline" FontFamily="georgia">Hello world.</Run>
</Paragraph>
假设HTML正进入WPF应用程序的“文本“数据库对象的属性,然后我使用绑定和转换器像这样:
<TextBlock Text="{Binding Path=ActiveDataItem.Text, Converter={StaticResource convertHTMLToXaml}}" />
不幸的是,这只是将XAML打印到页面,并没有解析它。我假设这是因为我绑定到TextBlock,这是预期的结果。我的问题是我如何绑定这个输出FlowDocument相关的控件,如段落,运行,部分,或其他?
注:我意识到有相当多的线程致力于将HTML转换为XAML。我已经提到了其中的大部分,但他们都缺乏这一特定步骤。任何帮助或链接表示赞赏,在此先感谢。
我最终使用该RichTextboxAssistant类的一个版本来扩展Document属性作为依赖属性,以便我可以绑定到它。然后,我不得不删除RichTextEditor的边框和背景颜色,以便文本显示在背景上,而不是在TextBox中。不是最好的解决方案,但它的工作! – 2010-09-09 17:14:14