Ce sont trois choses différentes que vous pouvez ajouter à un projet et je ne suis pas tout à fait sûr de comprendre la différence. Par exemple, ils semblent tous apparaître dans la boîte à outils du composant lorsque vous travaillez avec Form
. Quels sont les scénarios d'utilisation courants pour chacun d'eux? Quelle est la différence?
Réponses
Trop de publicités?La principale différence entre le Contrôle de l'Utilisateur, le Contrôle Personnalisé et d'un Composant, c'est qu'ils héritent de différents niveaux dans l'arborescence d'héritage:
MyComponent
|-> Component
MyCustomControl
|-> Control
|-> Component
MyUserControl
|-> ContainerControl
|-> ScrollableControl
|-> Control
|-> Component
Donc, en bref, vous obtenez une quantité différente de pré-câblé fonctionnalité avec les différentes options.
Quand souhaitez-vous utiliser les différentes options? (ce sont des pensées et des opinions, pas des vérités)
- Créer un composant si vous voulez fournir des fonctionnalités sans INTERFACE utilisateur (comme Minuterie composants, sources de données, ...)
- Créer un contrôle personnalisé si vous souhaitez faire un élément où vous avez le plein contrôle sur son aspect visuel, et vous ne voulez pas de bagages inutiles fonctionnalité. Cas typique serait de commandes simples avec des fonctionnalités limitées (comme un bouton)
- Créer un contrôle utilisateur si vous allez combiner les contrôles existants dans des modules réutilisables (tels que les deux listes avec des boutons où vous pouvez déplacer des éléments entre les listes).
C'est la différence entre un CustomControl et un UserControl :
Contrôle Personnalisé
Un couplage lâche de contrôle w.r.t code et de l'INTERFACE utilisateur
Dérive de Contrôle
Définit l'INTERFACE utilisateur dans un ResourceDictionary
L'INTERFACE utilisateur est skinable
A mise en page dynamique
L'INTERFACE utilisateur peut être changé dans les différents projets
A pleine boîte à outils de soutien
Définit un contrôle unique
Plus souple
==============
De Contrôle De L'Utilisateur
Un étroitement associée de contrôle w.r.t code et de l'INTERFACE utilisateur
Dérive de UserControl
Définit l'INTERFACE utilisateur normal XAML
Les contrôles enfants sont skinable
A statique de la mise en page
L'INTERFACE utilisateur est fixe et ne peut pas avoir des regards différents dans différents projets
Ne peuvent pas être ajoutés à la boîte à outils
Définit un ensemble de contrôles
Pas très souple comme un Contrôle Personnalisé