RichTextBlock PointerPressedEvent - 选择文本时的指针位置
RichTextBlock PointerPressedEvent - pointer position when selecting a text
我正在开发 windows 商店应用程序。在我的页面中,我有一个 RichTextBlock(而不是 WPF 中的 RichTextBox)。
我想订阅 PointerPressed
活动。在我的构造函数中,我有以下内容
rtb.PointerPressed += RtbOnPointerPressed;
rtb.PointerReleased += RtbOnPointerReleased;
我的问题是这些事件从未触发。
如果我在我的 RichTextBlock 顶部放置一个网格(在我的代码中为 TopGrid),我可以捕获 pointerPressed 事件。但是,我无法再 select 我的 RichTextBlock 中的文本。
如果我尝试在容器级别捕获 pointerPressed
事件(下面代码中的 Container),如果我按下边距而不是当我select一个文字。
<Grid x:Name="Container">//at this level, pointerPressed is raised
//only when I click outside the richtextblock
<RichTextBlock x:Name="rtb"></RichTextBlock>//PointerPressed is never fired
<Grid Background="Transparent" x:Name="TopGrid"></Grid>//If present,
//the selection does not work on RichTextBlock"
//but I can capture the pointerPressed event
</Grid>
这里有人知道select输入文本时如何知道指针位置吗?
您必须处理 SelectionChanged 事件。发件人将具有 SelectionStart、SelectionEnd 和 SelectedText 属性。
如果您出于某种原因想要使用 Pressed/Released 事件,请将您的代码替换为:
rtb.AddHandler(PointerPressedEvent, new PointerEventHandler(RtbOnPointerPressed), true);
rtb.AddHandler(PointerReleasedEvent, new PointerEventHandler(RtbOnPointerReleased), true);
最后一个参数 handledEventsToo 必须设置为 true 以确保即使事件在其他地方处理,处理程序也会被调用。
根据 https://msdn.microsoft.com/pl-pl/library/windows/apps/xaml/windows.ui.xaml.uielement.pointerpressed,您应该知道 PointerPressed 和 PointerReleased 并不总是成对出现。
我正在开发 windows 商店应用程序。在我的页面中,我有一个 RichTextBlock(而不是 WPF 中的 RichTextBox)。
我想订阅 PointerPressed
活动。在我的构造函数中,我有以下内容
rtb.PointerPressed += RtbOnPointerPressed;
rtb.PointerReleased += RtbOnPointerReleased;
我的问题是这些事件从未触发。
如果我在我的 RichTextBlock 顶部放置一个网格(在我的代码中为 TopGrid),我可以捕获 pointerPressed 事件。但是,我无法再 select 我的 RichTextBlock 中的文本。
如果我尝试在容器级别捕获 pointerPressed
事件(下面代码中的 Container),如果我按下边距而不是当我select一个文字。
<Grid x:Name="Container">//at this level, pointerPressed is raised
//only when I click outside the richtextblock
<RichTextBlock x:Name="rtb"></RichTextBlock>//PointerPressed is never fired
<Grid Background="Transparent" x:Name="TopGrid"></Grid>//If present,
//the selection does not work on RichTextBlock"
//but I can capture the pointerPressed event
</Grid>
这里有人知道select输入文本时如何知道指针位置吗?
您必须处理 SelectionChanged 事件。发件人将具有 SelectionStart、SelectionEnd 和 SelectedText 属性。
如果您出于某种原因想要使用 Pressed/Released 事件,请将您的代码替换为:
rtb.AddHandler(PointerPressedEvent, new PointerEventHandler(RtbOnPointerPressed), true);
rtb.AddHandler(PointerReleasedEvent, new PointerEventHandler(RtbOnPointerReleased), true);
最后一个参数 handledEventsToo 必须设置为 true 以确保即使事件在其他地方处理,处理程序也会被调用。
根据 https://msdn.microsoft.com/pl-pl/library/windows/apps/xaml/windows.ui.xaml.uielement.pointerpressed,您应该知道 PointerPressed 和 PointerReleased 并不总是成对出现。