1

我正在使用由 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(不是 WPF 或 Silverlight)中从 RichTextBlock 中检索无格式文本。

谢谢和问候, 苏米特。

4

1 回答 1

1

与其尝试检索它,不如简单地在绑定上使用转换器?

于 2012-08-18T16:00:12.473 回答