【发布时间】:2012-08-18 14:10:17
【问题描述】:
我正在使用由 VS2012 的默认 Metro Style 项目模板添加的标准 RichTextColumns.cs 辅助类。它在内部使用 RichTextBlock 来添加 RichTextColumns。 DataBinding 与以下标记一起正常工作
<common:RichTextColumns>
<common:RichTextColumns.ColumnTemplate>
<DataTemplate>
<RichTextBlockOverflow Width="400" Margin="50,0,0,0"/>
</DataTemplate>
</common:RichTextColumns.ColumnTemplate>
<RichTextBlock Width="400">
<Paragraph>
<Run Text="{Binding Content}"/>
</Paragraph>
</RichTextBlock>
现在我在“内容”中嵌入了在 WinRT 中不被视为超链接的超链接。我需要它们表现得像超链接。所以我想检索绑定到 RichTextBlock 的文本,对其进行标记,在适当的位置插入具有 HyperlinkButton 的 InlineUI 元素。现在,如果我只能检索绑定到 RichTextBlock 的文本,我就可以做到这一切。不幸的是,我似乎无法“检索”它。
我试过了
RichTextBlock value = (RichTextBlock)GetValue(RichTextContentProperty);
valueRun = (Run)((Paragraph)value.Blocks[0]).Inlines[0];
value.Select(((Paragraph)value.Blocks[0]).ContentStart, ((Paragraph)value.Blocks[0]).ContentEnd);
Paragraph para = TokenizeTweet(value.SelectedText);
但 SelectedText 始终为空。
但是,如果我做一个
value.Blocks.Clear()
它清除了正在绑定的文本。我错过了什么?
简单地说,如何在 WinRT(不是 WPF 或 Silverlight)中从 RichTextBlock 中检索未格式化的文本。
感谢和问候, 苏米特。
【问题讨论】:
标签: microsoft-metro windows-runtime winrt-xaml