3

我一直在寻找有关将 html 内容绑定到我的项目详细信息页面上的翻转视图内的富文本块的帮助,但找不到任何有关如何做我所追求的信息。

我正在构建一个简单的新闻阅读器应用程序,它从我想在我的翻转视图中显示的提要中获取 html 内容。

我创建了一个新的默认项目详细信息页面并绑定了我的收藏:

this.DefaultViewModel["Group"] = feedItem.Category;
this.DefaultViewModel["Items"] = feedItem.Category.Items;
this.flipView.SelectedItem = feedItem; 

然后在我的翻转视图的 DataTemplate 中:

<common:RichTextColumns x:Name="richTextColumns" Margin="117,0,117,47">
    <RichTextBlock x:Name="richTextBlock" Width="560" Style="{StaticResource ItemRichTextStyle}">
        <Paragraph>
            <Run FontWeight="SemiLight" Text="{Binding Content}"/>
        </Paragraph> ...

内容是我使用的模型上的字符串属性HtmlUtilities.ConvertToText(html)

这完美无缺。但是,我需要文章中的图像和标题(h1、h2 等)。

我的问题是实现这一目标的最佳方法是什么?

解析 html 并创建运行、包含图像等的内联 ui 容器不是问题。我为此使用了 html 敏捷包,但我的问题是如何将这些元素添加到richtextblocks 块集合中?

我尝试在翻转视图上加载一个事件,然后获取当前的翻转视图依赖对象(this.flipView.ItemContainerGenerator.ContainerFromIndex(flipView.SelectedIndex);然后遍历节点树以找到richtextblock,然后设置 blocks 属性,但它适用于第一项,然后停止工作,我猜与翻转视图如何虚拟化集合有关。

老实说,对于这肯定是一项简单的任务,它变得非常混乱!?xaml 团队肯定意识到人们可能希望将图像绑定到富文本块?

我以为您可以将富文本块的内容绑定到我的模型上的属性,然后返回块,但富文本块似乎没有任何方法可以做到这一点,至少从我能做到的看。

如果有人可以帮助我,将不胜感激。这真让我抓狂。

4

1 回答 1

1

我基本上有同样的问题。我的解决方案是将 HTML 分解为 pragraphs 列表并使用提到的this.flipView.ItemContainerGenerator.ContainerFromIndex(flipView.SelectedIndex)方法来查找 RichTextBlock,清除其 Inlines 并将所有 paragprahs 添加到 Inlines 集合中。FlipView 的 SelectedItemChanged 事件的调用过程

于 2012-10-26T20:17:07.233 回答