title: Canvas in ScrollViewer (Preview)MouseButtonDown event order
body: <p>If we have  </p>
  
  <pre><code>&lt;ScrollViewer Name="scroll_viewer" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"&gt;
      &lt;Canvas Name="canvas" Height="200" Width="200"&gt;
          &lt;Rectangle Fill="AliceBlue" Width="100" Height="100"/&gt;  
      &lt;/Canvas&gt;
  &lt;/ScrollViewer&gt; 
  </code></pre>
  
  <p>with handlers for:</p>
  
  <pre><code>scroll_viewer.PreviewMouseLeftButtonDown
  scroll_viewer.MouseLeftButtonDown
  canvas.PreviewMouseLeftButtonDown
  </code></pre>
  
  <p>Then if we click in the Rectangle we get <code>scroll_viewer_PreviewMouseLeftButtonDown</code> called first then <code>canvas_PreviewMouseLeftButtonDown</code> but <code>scroll_viewer_MouseLeftButtonDown</code> is not called.<br>
  I want to handle the click event first in the canvas - if an object is clicked I want to handled the event (for object drag).  If no canvas object is clicked I want to handle event in scroll_viewer (to manage scrollview panning with the mouse).<br>
  How to manage this given that the call order is the oposite of what i want and that the non perview version <code>scroll_viewer.MouseLeftButtonDown</code> is not called?  </p>
  
  <p>UPDATE:<br>
  From this post: <a href="http://forums.silverlight.net/p/90682/208716.aspx" rel="nofollow">Silverlight forums</a></p>
  
  <pre><code>((FrameworkElement)scroll_viewer.GetValue(ScrollViewer.ContentProperty)).MouseLeftButtonDown += scroll_viewer_MouseLeftButtonDown;
  </code></pre>
  
  <p>DOES work ie does get called after the preview events - can some explain why this less than obvious syntax is required?</p>