如何从WinRT中的RichTextBlock中检索文本

时间:2012-08-18 14:10:18

标签: microsoft-metro windows-runtime winrt-xaml

我正在使用由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的文本,对其进行标记,插入在适当位置具有HyperlinkBut​​ton的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)中检索未格式化的文本。

谢谢和问候, 萨米特。

1 个答案:

答案 0 :(得分:1)

为什么不简单地在绑定上使用转换器呢?

而不是试图检索它