<Window x:Class="TunnelingBubbling.Window1" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="TunnelingBubbling"> <Grid MouseLeftButtonDown="MouseDownGrid" PreviewMouseLeftButtonDown="PreviewMouseDownGrid" Width="300" Height="300"> <Button PreviewMouseLeftButtonDown="PreviewMouseDownButton" MouseLeftButtonDown="MouseDownButton" Click="MyClickEvent" Name="btnGo"> <TextBox MouseLeftButtonDown="MouseLeftButtonDown" PreviewMouseLeftButtonDown="PreviewMouseLeftButtonDown" Width="200" Height="30" Name="textBox1"> </TextBox> </Button> </Grid> </Window> //File:Window.xaml.cs using System; using System.Collections.Generic; using System.Text; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Shapes; using System.Diagnostics; namespace TunnelingBubbling { public partial class Window1 : System.Windows.Window { public Window1() { InitializeComponent(); } private void PreviewMouseDownGrid(object sender, RoutedEventArgs e) { Debug.WriteLine("PreviewMouseDownGrid"); } private void PreviewMouseDownButton(object sender, RoutedEventArgs e) { Debug.WriteLine("PreviewMouseDownButton"); } private void PreviewMouseLeftButtonDown(object sender, RoutedEventArgs e) { Debug.WriteLine("PreviewMouseLeftButtonDown"); } private void MyClickEvent(object sender, RoutedEventArgs e) { Debug.WriteLine("MyClickEvent"); } private void MouseLeftButtonDown(object sender, RoutedEventArgs e) { Debug.WriteLine("MouseLeftButtonDown"); } private void MouseDownButton(object sender, RoutedEventArgs e) { Debug.WriteLine("MouseDownButton"); } private void MouseDownGrid(object sender, RoutedEventArgs e) { Debug.WriteLine("MouseDownGrid"); } } }