我正在尝试按照基于段落的交互来做一些事情,就像许多电子书阅读器所做的那样(它们让您单击一个段落并显示一个带有一些选项的小菜单等)。
我坚持的事情是确定用户点击/点击的段落。事件不能直接分配给Block
类型对象,因此我尝试通过将DoubleTapped
事件处理程序附加到 parent 来解决它RichTetBlock
。我在想可能以某种方式根据位置确定段落,但我不完全确定如何在实践中进行。
到目前为止我得到了什么:
this.chapterText.AddHandler(DoubleTappedEvent, new DoubleTappedEventHandler(chapterText_DoubleTapped), true);
...
private void chapterText_DoubleTapped(object sender, DoubleTappedRoutedEventArgs e)
{
var rtb = sender as RichTextBlock;
var y = e.GetPosition(rtb).Y;
var paragraph = rtb.Blocks.FirstOrDefault(o => y >= o.) as Paragraph;
}
但这种方法显然行不通。
我在这里缺少什么吗?
谢谢!