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?
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:
Template
).Content
).DataTemplate
à son contenu (via la propriété ContentTemplate
).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èsLabel
est beaucoup plus lourd que TextBlock
Quelques lectures plus intéressantes ci-dessous
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
.
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.
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.