web-dev-qa-db-fra.com

Différence entre Label et TextBlock

Selon le Développement d’applications Windows avec Microsoft .NET 4 70-511 Kit de formation

Quelle est la différence entre le contrôle Label et le contrôle TextBlock puisque les deux sont des contrôles de contenu et un simple affichage de texte?

118
Rami Shareef

TextBlock n'est pas un contrôle

Même si TextBlock réside dans l'espace de noms System.Windows.Controls, il ne s'agit pas d'un contrôle. Il dérive directement de FrameworkElement. L'étiquette, par contre, dérive de ContentControl. Cela signifie que Label peut:

  1. Recevez un modèle de contrôle personnalisé (via la propriété Template).
  2. Afficher des données autres qu'une simple chaîne (via la propriété Content).
  3. Appliquez un DataTemplate à son contenu (via la propriété ContentTemplate).
  4. Faites tout ce qu'un ContentControl peut faire, ce qu'un FrameworkElement ne peut pas.

    • Label le texte est grisé lorsqu'il est désactivé
    • Label supporte les clés d'accès
    • Label est beaucoup plus lourd que TextBlock

Source

Quelques lectures plus intéressantes ci-dessous

195
biju

Label est ContentControl ce qui signifie que vous pouvez définir n'importe quoi pour le contenu. Absolument tout ce qui comprend les chaînes, les nombres, les dates, les autres contrôles, les images, les formes, etc. TextBlock ne peut gérer que strings.

24
Snowbear

Les étiquettes prennent généralement en charge la sortie texte sur une seule ligne, tandis que TextBlock est conçu pour l’affichage de texte multiligne.

Par exemple, dans wpf, TextBlock a une propriété TextWrapping qui permet la saisie multiligne; L'étiquette n'a pas cela.

23
rene_buehling

Bien que TextBlock et Label servent tous deux à afficher du texte, ils sont assez différents sous les couvertures.

=> Label hérite de ContentControl , une classe de base qui permet d'afficher presque toutes les interfaces utilisateur imaginables.

=> TextBlock, d'autre part, hérite directement de FrameworkElement , manquant ainsi le comportement commun à tous. éléments héritant de Control. La hiérarchie d'héritage superficielle de TextBlock rend le contrôle plus léger que Label et convient mieux aux scénarios simples et non interactifs.

PS: Toutefois, si vous souhaitez utiliser touches d'accès ou si vous souhaitez une conception plus flexible ou graphique, vous devez utiliser Label.

8
Vinodhini Ramasamy