我希望有两个事件处理程序Panel_Tap
(StackPanel
点按)和More_Tap
(TextBlock
点按)。 TextBlock
位于StackPanel
内。我的xaml代码:
<StackPanel Tap="Panel_Tap" Orientation="Horizontal">
<Image Height="75" Width="75" Source="{Binding Avatar}"/>
<StackPanel Orientation="Vertical">
<TextBlock Name="Nickname" Text="{Binding Nickname}"/>
<TextBlock Name="More" Text="{Binding More}" Tap="More_Tap"/>
<TextBlock Name="Text" Text="{Binding Text}"/>
</StackPanel>
</StackPanel>
如果我点按TextBlock
,先调用More_Tap
,然后点按Panel_Tap
。是否可以点击TextBlock
仅调用More_Tap
事件处理程序?
答案 0 :(得分:2)
事件不断冒泡到可视树,直到它被处理完毕。因此,在要阻止事件进一步冒泡的元素的Tab事件中设置e.Handled = true
。
private void More_Tap(object sender, System.Windows.Input.GestureEventArgs e) {
// Your code here...
// ...
e.Handled = true; // This line prevents this event from bubbling up
}