元素与其他元素内的事件处理程序与另一个事件处理程

时间:2013-05-23 07:05:59

标签: windows-phone-7 xaml windows-phone-8

我希望有两个事件处理程序Panel_TapStackPanel点按)和More_TapTextBlock点按)。 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事件处理程序?

1 个答案:

答案 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
}