title: WPF routed events handling in UserControl
body: <p>I have a WPF UserControl that contains a button. I also have a WPF Window that contains a button.
  In both the UserControl and the Window I place the following line in XAML:</p>
  
  <pre><code>UIElement.PreviewMouseLeftButtonDown="OnPreviewMouseLeftButtonDown"
  </code></pre>
  
  <p>and in 'OnPreviewMouseLeftButtonDown' I've place a debug print that displays args.Source.</p>
  
  <p>When I click on the button that is inside the window, I get the button as the EventArgs source. However, when I click the button that inside the UserControl (which is also inside a window, so I could test it, but not the same window) I get the UserControl as the EventArgs source.</p>
  
  <p>I tired to see if there is some decorator around the UserControl (using snoop) but it seems straight forward.</p>
  
  <p>I can't understand what is so special about UserControl in WPF that I don't get the right sender. Can someone please explain to me what am I missing?</p>