我正在使用 VS2012 插入到 Windows 应用商店应用程序的 Common 文件夹中的 RichTextColumns 控件来将 RichTextBlock 中的文本显示到多个列中。文本分为可以用段落、运行和跨度标记的经文。
我需要能够确定用户点击了哪个诗句(或文本部分),以便可以标记诗句(更改背景颜色),并且应用程序可以加载链接到该特定诗句的媒体。
在我们的桌面应用程序中,我们能够从 Run 类继承并插入 VerseIndex 属性。然后我们捕获了 Click 事件并使用 x,y 坐标来查找在该范围内的 Run。在 WinRt 中,Run 类是密封的,因此我们不能从它继承,并且我们用于定位的一些其他调用也丢失了。
可以使用什么方法(除了文本选择,我们需要用户突出显示和剪切/粘贴)来确定点击的诗句并对数据做出反应?
这是我正在使用的 RichTextColumns 显示的示例。
<ScrollViewer x:Name="ChapterScrollViewer" Margin="0,0,0,40"
Style="{StaticResource HorizontalScrollViewerStyle}" Background="White" >
<StackPanel Orientation="Horizontal" Margin="0,0,20,20" >
<common:RichTextColumns x:Name="richTextColumnsChapter" VerticalAlignment="Top">
<common:RichTextColumns.ColumnTemplate>
<DataTemplate>
<RichTextBlockOverflow Width="400" Margin="50,0,0,0"/>
</DataTemplate>
</common:RichTextColumns.ColumnTemplate>
<RichTextBlock x:Name="mainRichTextBlockChapter" Margin="0,0,0,0"
IsTextSelectionEnabled="True"
IsTapEnabled="True"
FontWeight="Light" Width="400" Foreground="Black" VerticalAlignment="Top" FontSize="20">
<Paragraph>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus tempor scelerisque lorem in vehicula. Aliquam tincidunt, lacus ut sagittis tristique, turpis massa volutpat augue, eu rutrum ligula ante a ante Pellentesque porta, mauris quis interdum vehicula, urna sapien ultrices velit, nec venenatis dui odio in augue. Cras posuere, enim a cursus convallis, neque turpis malesuada erat, ut adipiscing neque tortor ac erat</Paragraph>
</RichTextBlock>
</common:RichTextColumns>
</StackPanel>
</ScrollViewer>