No, you don't have to. Why? And what "specify that it's a user control" would mean? Not that you need or need not to do it, the whole notion makes no sense. Do you understand what is the type? Inheritance? Run-time vs compile-time type? You should understand it all and a lot more to do some programming. A type is a type, there is nothing to specify.
[EDIT]
Thank you for explanation of your goals. Here is what you need to understand about the
UserControl
. The class
System.Windows.Controls.UserControl
had no essential additional functionality compared to its base class
System.Windows.Controls.ContentControl
and the class
System.Windows.Forms.UserControl
had no essential additional functionality compared to its base class
System.Windows.Forms.ContainerControl
. Please see:
http://msdn.microsoft.com/en-us/library/system.windows.forms.usercontrol.aspx[
^],
http://msdn.microsoft.com/en-us/library/system.windows.controls.usercontrol.aspx[
^].
The main purpose of user control classes is that they can cooperate with the Designer. Now, the Designer is the tool for creation of simple ad-hoc controls quickly. If you try to do a bit more serious work with the Designer, you just waste time, because using the Designer is all manual ineffective work. So, it's hard to say if the user controls classes can make a good plug-in interface. I would rather advise to base you plug-in interfaces on the class
System.Windows.Controls.Control
or
System.Windows.UIElement
for WPF or the class
System.Windows.Forms.Control
, to give the plug-in developers more comprehensive palette of development capabilities where user control would be just one of the ways to develop the UI plug-ins.
—SA