Hi there.
I had the same problem, but I've found a workaround.
Bear in mind I'm working on a WPF app, but I guess should be working for SL too.
My actual deal is to create an ElementLayer where the user can drag, resize and interact with objects. I must intercept most of the input events and some other stuffs too.
NOTE: This as follows is a ROUGH way to do it and -personally- I'd prefer 1000 times that ESRI staff would give a better interface. In the meantime I must use anyway.
1) in the code, trigger the LayoutUpdated event, to "ensure" that the Map control has been built totally (tiled layer and an element layer);
2) declare a Canvas var somewhere in the app;
3) within the LayoutUpdate event handler scan the visual tree (VisualTreeHelper) from the Map control toward the descendant, until you find a Canvas (few steps);
4) set the reference of the found Canvas to the declared var and SET the background of the Canvas itself as transparent;
5) further subscribe any event you need for the Canvas (you should also UN-subscribe somewhere);
6) within the subscribed event handlers, use the Handled property of the arguments to TRUE if you code should catch the event, otherwise the event will walk-up the visual tree to the Map control manager for the standard handlers.
My suggestion to the ESRI staff is to offer something similar to the developer, without forcing a tree-inspection. That works, but it is the worst way to solve a problem.
Cheers