Controls in the Telerik UI for WinForms suite have both a general shared architecture and a specific internal structure.
Shared Control Architecture
Every control in the Telerik UI for WinForms suite is derived from the RadControl class, which in turn descends
from System.Windows.Forms.ScrollableControl. This relationship ties the controls into the main Windows Forms architecture,
and allows you to place them on forms, participate in drag-and-drop operations, and so on. The controls are simple wrappers and do not implement detailed
functionality. Rather, each control has as a direct descendant an instance of the RootRadElement class. This
RootRadElement wraps the actual functionality of the control and acts to transfer events to and from the
RadControl class. In turn, the RootRadElement has a descendant tree of RadElement
classes that implement the actual logic required by the control. In most cases the RootRadElement has a single descendant, though some
complex controls such as the Telerik RadRibbonBar require more than one child for the RootRadElement.
See the Class Hierarchy Overview for more information.
For example, schematically, the overall architecture for a RadTabStrip looks as follows:
tree of RadElement instances
Specific Internal Structure
Any control in the Telerik UI for WinForms suite is composed of RadElement instances arranged in a logical tree.
You can inspect this tree using the VisualStyleBuilder or the Control Spy. For example, the screenshot below shows the internal structure of a
RadTabStrip control as displayed by the Control Spy. In this case, you can see the RootRadElement with the
RadTabStripElement as its only child. The RadTabStripElement in turn contains a
DockLayoutPanel which in turn holds the elements that make up each tab. At the leaf level of the tree, various
primitives are the atomic pieces
that make up the element. For example, a scroll button contains a fill, an arrow and border primitives.