我正在使用由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中的RichTextBlock(非WPF或Silverlight)中检索未格式化的文本。
谢谢和问候, 萨米特。
答案 0 :(得分:1)
为什么不简单地在绑定上使用转换器呢?
而不是试图检索它