【发布时间】:2017-11-30 21:51:41
【问题描述】:
我正在尝试按照基于段落的交互来做一些事情,就像许多电子书阅读器所做的那样(它们让您单击一个段落并显示一个带有一些选项的小菜单等)。
我坚持的事情是确定用户点击/点击的段落。这些事件不能直接分配给Block 类型的对象,所以我尝试通过将DoubleTapped 事件处理程序附加到父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;
}
但这种方法显然行不通。
这里有什么我遗漏的吗?
谢谢!
【问题讨论】:
标签: c# .net uwp richtextblock