you wrote:
"i gather that i need to extend some visual element (probably UIElement?) but i cant change the CustomControl1 class from extending Control"
Control is inherited from FrameworkElement which is inherited from UIElement :)
As I understand you want to create reusable CustomControl which will contain common functionality for other objects? What about to inherit your CustomCotrol from ContentControl instead of Control?
For example, in one of my projects I need create a lot of resizable controls on canvas. I created CustomControl which extends ContentControl and which implements resize feature.
After that I just put needed controls into Content of my custom resizable control, like:
<controls:resizablecontrol xmlns:controls="#unknown">
<controls:foldernode title="Parent" />
</controls:resizablecontrol>