In a current project that I’m working on, I needed to extend a UserControl to add some additional specialized functionality. This is very easy to do if all you need is to extend code, but it becomes much more difficult if you want to extend it via a XAML/C# UserControl. After much web searching, I found a very simple and elegant solution, thanks to this site. Basically, all you have to do is modify the root element of your extended file as follows:
<local:SomeBaseTypeYouWantToUse x:Class="MyApp.MyControl" xmlns:local="clr-namespace:NameSpace.To.Your.BaseClass" />
Where SomeBaseTypeYouWantToUse is the class that you’d like to extend. Simple!
Update (6/3/2010):I ran into some weird problems with this hack that I was unable to resolve. If anyone ends up reading this, please let me know if this worked correctly for your application.