Understanding of Tunnelling Concept in WPF

  1. <Window x:Class="LearningWPF.MainWindow"  
  2.     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"  
  3.     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"  
  4.   
  5. Title="MainWindow" Height="350" Width="525">  
  6.     <Grid Height="100" Width="500" HorizontalAlignment="Center" VerticalAlignment="Center" PreviewMouseDown="Grid_PreviewMouseDown">  
  7.         <Grid.RowDefinitions></Grid.RowDefinitions>  
  8.         <StackPanel Grid.Row="0" PreviewMouseDown="StackPanel_PreviewMouseDown">  
  9.             <Button x:Name="btnClick" Content="Click Me" Height="50" Width="90" PreviewMouseDown="btnClick_PreviewMouseDown"/>  
  10.         </StackPanel>  
  11.     </Grid>  
  12. </Window>  

  1. using System.Windows;  
  2. using System.Windows.Input;  
  3. namespace LearningWPF {  
  4.     public partial class MainWindow: Window {  
  5.         public MainWindow() {  
  6.             InitializeComponent();  
  7.         }  
  8.         private void Grid_PreviewMouseDown(object sender, MouseButtonEventArgs e) {  
  9.             MessageBox.Show("Grid Preview MouseDown Called");  
  10.         }  
  11.         private void StackPanel_PreviewMouseDown(object sender, MouseButtonEventArgs e) {  
  12.             MessageBox.Show("StackPanel Preview MouseDown Called");  
  13.         }  
  14.         private void btnClick_PreviewMouseDown(object sender, MouseButtonEventArgs e) {  
  15.             MessageBox.Show("Button Preview MouseDown Called");  
  16.         }  
  17.     }  
  18. }