>>And, to complicate the explanation further, the 'outer' Canvas in my test is not, in reality, a Canvas at all but a UserControl and the 'inner' Canvas is actually sub-classed with a lot of app specific logic. The XAML guys who are doing the front end may or may not, depending on the circumstances, choose to stick a ScrollViewer between these two elements. But the 'outer' and 'inner' bits do communicate regardless of whether there's an intervening ScrollViewer so I may be able to catch the events in the 'outer' and pass them directly to the 'inner' - in effect leap-frogging the ScrollViewer if it's present......
>Hope that made sense..
Makes total sense. In essence it's the same as my suggestion. Your just going up one more level.