Telerik UI for WinForms

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:

RadTabStrip   RootRadElement     RadTabStripElement       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.