【问题标题】:XAML RichTextBlock inside virtualised flip view虚拟翻转视图中的 XAML RichTextBlock
【发布时间】:2012-10-26 18:19:18
【问题描述】:

我一直在搜索有关将 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> ...

Content 是我使用 HtmlUtilities.ConvertToText(html) 获得的模型上的字符串属性

效果很好。但是,我需要文章中的图像和标题(h1、h2 等)。

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

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

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

老实说,这确实是一项简单的任务!? xaml 团队肯定意识到人们可能希望将图像绑定到富文本块?

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

如果有人可以帮助我,将不胜感激。这让我发疯了。

【问题讨论】:

    标签: c# xaml windows-8 microsoft-metro


    【解决方案1】:

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

    【讨论】:

    • 那是我最初的计划,但我已经更改了选择的事件触发并加载了翻转视图,但似乎每隔几篇文章,ContainerFromIndex 返回 null。我猜这是由于某种虚拟化。我找不到每次都有效的方法。
    • @Terry 我也有同样的问题。我通过在 RichTextBlocks OnLoaded 事件中调用相同的代码来解决它,它以某种方式工作
    • 虽然这可行,但我仍然觉得它非常不可靠。有些文章仍然没有显示,现在我有随机崩溃。我真的很震惊这有多么困难,而且 MSDN 上没有这样的例子。
    • 同意 FlipView 和 RichTextBlock 是 WinRT 中记录最差且最难使用的组件,尽管我认为许多应用程序会使用并且会很常见。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多