Quelle est la différence entre une bibliothèque de contrôle utilisateur et une bibliothèque de contrôle personnalisée?

Je ne fais que commencer à travailler sur WPF et je voudrais créer un contrôle WPF réutilisable.

Lorsque je regarde les options de création de projets dans Visual Studio, je vois “Bibliothèque de contrôles utilisateur WPF” et “Bibliothèque de contrôles personnalisés WPF”. Je ne sais pas quelle est la différence entre eux et mes recherches sur Google n’ont donné aucune explication décente.

Je voudrais comprendre les différences entre eux et voir idéalement quelques exemples d’utilisation quand l’un sur l’autre.

En pratique, les contrôles personnalisés sont quelque chose que vous implémentez au niveau du code, tandis que vous pouvez utiliser XAML pour les contrôles utilisateur. Les contrôles personnalisés étendent l’une des classes de base de contrôle WPF et fournissent des fonctionnalités supplémentaires via le code afin que toute la logique et la représentation ajoutées soient implémentées dans le code.

Un contrôle utilisateur est techniquement un contrôle de contenu normal que vous pouvez étendre dans certaines parties du code, mais il est généralement étendu en plaçant d’autres contrôles à l’intérieur. Donc, comme Kent a mentionné un UserControl est une agrégation des autres contrôles. Cela limite considérablement ce que vous pouvez faire avec un contrôle utilisateur. Il est plus facile à utiliser mais plus limité qu’un contrôle personnalisé complet.

Ces contrôles ont une petite différence du sharepoint vue de l’exécution. Lorsque vous créez une application et y placez un UserControl, l’arborescence de contrôle comportera un modèle concret UserControl. Donc, si nous considérons un exemple boiteux d’un bouton spécialisé. Si vous utilisiez un contrôle utilisateur, vous appendiez un bouton dans l’élément . Lorsque vous utilisez un contrôle personnalisé, vous dériveriez le contrôle lui-même à partir d’un bouton le plus probable. La différence serait visible dans l’arbre logique.

Alors que le contrôle personnalisé fournirait un arbre logique similaire à

  • Fenêtre
    • CustomButton

Le UserControl donnerait un arbre logique de

  • Fenêtre
    • CustomButtonUserControl
      • Bouton

Ainsi, UserControl est simplement un ContentControl normal que vous pouvez étendre un peu et pour lequel vous pouvez prédéfinir le contenu. Le contrôle personnalisé offre une plus grande flexibilité au prix d’une facilité d’implémentation, car vous devez faire toute la logique et l’interaction dans le code au lieu d’avoir l’avantage de XAML.

Après tout cela, je ne pense pas qu’il y ait une telle différence dans les modèles Visual Studio. Le contrôle personnalisé Visual Studio crée probablement un projet avec un contrôle personnalisé vide alors que le projet de contrôle utilisateur est un projet avec un contrôle utilisateur vide. Vous pouvez ensuite append tout type d’éléments au projet.

Mettre à jour

Et mon avis sur le moment d’utiliser le contrôle personnalisé et le contrôle utilisateur est que si vous pouvez faire quelque chose avec un contrôle utilisateur et que l’élément de contrôle supplémentaire dans l’arborescence logique ne vous dérange pas, utilisez un contrôle utilisateur créer et maintenir Utilisez un contrôle personnalisé uniquement si vous avez une raison de ne pas utiliser un contrôle utilisateur.

Un Control représente un comportement qui est pelable (modélisable), tandis qu’un UserControl est généralement un agrégat de niveau supérieur de Control spécifique à une application.

Plus d’infos disponibles ici .