I did a svn-checkout yesterday, too. Very clean and well commented code! Your coding-style reminds me of java.
I switched from java to c# some months ago.
You derive all the touchable controls from WPF-controls. But with attached events and attached properties you can allow arbitrary UIElements to raise touch related routed events, without the need to derive from a class.
@MSDN: “An attached event allows you to attach a handler for a particular event to some child element rather than to the parent that actually defines the event, even though neither the object potentially raising the event nor the destination handling instance define or otherwise “own” that event in their namespace.”
I found a blog article that describes in detail how to implement custom attached events yesterday.
SerialSeb: Attached Events By Example
Daniel D also leverages attached events in his MultiTouchVista in Multitouch.Framework.WPF.Input.MultitouchScreen
