Safari Books Online is a digital library providing on-demand subscription access to thousands of learning resources.
When designing user interfaces in any technology, you ideally want to encapsulate the look and behavior of commonly used user interface elements into reusable components that you can use elsewhere in your application, or even in other applications. Creating custom controls also reduces the amount of code required in the code-behind, simplifies the XAML in your views, and helps maintain consistency in your user interface.
We already have a wide range of controls available to use from the core Silverlight control set, the Silverlight Toolkit, and open source controls on CodePlex. In addition, there are many more in the form of third-party controls from companies such as Telerik, ComponentOne, DevExpress, and Infragistics. Occasionally, however, you will find that you have specific requirements that no existing control currently provides. It's at this point that you should consider creating your own control.