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>