Les contrôles personnalisés sont ni plus ni moins que des portions de codes associées à des rendus graphiques, développés pour répondre à une/des problématique(s) fonctionnelle(s) récurrentes. Le principal intérêt des "Custom Control" est tout simplement leur réutilisation. En effet, imaginez qu'il faille redévelopper un bouton (en terme de fonctionnalité mais aussi en terme de rendu) à chaque fois que l'on souhaite en utiliser un, cela deviendrait très vite périlleux.
Grace aux contrôles personnalisés Silverlight (Custom Control) vous allez pouvoir résoudre ce problème. Malheureusement avec Silverlight il n'existe pas encore de contrôle natif tel que la TextBox ou le Button. Parcontre, pour pallier à cette lacune temporaire Silverlight nous expose la possibilité de créer des contrôles utilisateurs personnalisés (via des UserControl) facilement. Vous pourrez d'ailleurs retrouver dans le SDK de la version 1.1 alpha des exemples de contrôles basiques tel que la ListBox ou le Slider.
A ce propos, je viens tout juste de terminer un nouvel article dédié aux contrôles personnalisés avec Silverlight version 1.1 alpha. Au cours de cet article vous apprendrez à développer votre propre contrôle personnalisé et à maitriser les aspects techniques tel que les propriétés personnalisées et le rendu graphique de votre contrôle, le tout en code managé C#.
Voici un aperçu du rendu final de l'exemple décrit dans l'article. Il s'agit d'un compteur ayant les propriétés suivantes Value, Maximum, Minimum et Step :

<Wygwam:Meter Value="10" Maximum="16" Minimum="8" Step="2" />

Si vous souhaitez approfondir le sujet, je vous invite donc à venir parcourir l'intégralité de mon article en version française à l'adresse suivante : http://www.asp-php.net/tutorial/xaml/silverlight-usercontrol.php
Les sources de l'article sont disponibles en téléchargement [ Download Source : Format ZIP 25 ko ]. Il s'agit d'un projet Expression Blend 2 (May CTP).
Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :