路由事件

原文: 路由事件

输入事件的冒泡和隧道

事件的处理顺序如下所示:

  1. 针对根元素处理 PreviewMouseDown(隧道)。

  2. 针对中间元素 1 处理 PreviewMouseDown(隧道)。

  3. 针对源元素 2 处理 PreviewMouseDown(隧道)。

  4. 针对源元素 2 处理 MouseDown(冒泡)。

  5. 针对中间元素 1 处理 MouseDown(冒泡)。

  6. 针对根元素处理 MouseDown(冒泡)。

典型冒泡事件:

1 <Border Height="50" Width="300" BorderBrush="Gray" BorderThickness="1">
2   <StackPanel Background="LightGray" Orientation="Horizontal" Button.Click="CommonClickHandler">
3     <Button Name="YesButton" Width="Auto" >Yes</Button>
4     <Button Name="NoButton" Width="Auto" >No</Button>
5     <Button Name="CancelButton" Width="Auto" >Cancel</Button>
6   </StackPanel>
7 </Border>

此元素树生成类似如下的内容:

Click事件的事件路由为:

Button-->StackPanel-->Border-->...

猜你喜欢

转载自www.cnblogs.com/lonelyxmas/p/9472891.html