wpf - Diferencia entre Label y TextBlock
(4)
De acuerdo con el desarrollo de aplicaciones de Windows con Microsoft .NET 4 70-511 Training Kit
¿Cuál es la diferencia entre el control Label
y el control TextBlock
ya que ambos son controles de contenido y solo muestran texto?
TextBlock no es un control
Aunque TextBlock
vive en el espacio de nombres System.Windows.Controls, no es un control. Se deriva directamente de FrameworkElement
. Label, por otro lado, deriva de ContentControl
. Esto significa que Label
puede:
- Se le dará una plantilla de control personalizada (a través de la propiedad
Template
). - Mostrar datos que no sean solo una cadena (a través de la propiedad de
Content
). - Aplicar un
DataTemplate
a su contenido (a través de la propiedadContentTemplate
). Haga lo que un
ContentControl
pueda hacer que unFrameworkElement
no pueda.-
Label
texto de laLabel
aparece atenuado cuando está deshabilitado -
Label
admite claves de acceso -
Label
es mucho más pesada queTextBlock
-
Algunas lecturas más interesantes a continuación
- http://www.wpfwiki.com/WPF%20Q4.1.ashx
- ¿Cuál es la diferencia entre el elemento WPF TextBlock y el control Label?
Aunque TextBlock y Label se usan para mostrar texto, son bastante diferentes bajo las carátulas.
=> Label hereda de ContentControl , una clase base que permite la visualización de casi cualquier IU imaginable.
=> TextBlock , por otro lado, hereda directamente de FrameworkElement , perdiendo así el comportamiento que es común a todos los elementos que heredan de Control. La jerarquía de herencia poco profunda de TextBlock hace que el control sea más ligero que Label y se adapta mejor a escenarios más simples y no interactivos.
PD: Sin embargo, si desea que las teclas de acceso funcionen o si desea un diseño más flexible o gráfico, deberá usar Etiqueta.
Las etiquetas generalmente son compatibles con la salida de texto de una sola línea, mientras que TextBlock está destinado a la visualización de texto de varias líneas.
Por ejemplo, en wpf TextBlock tiene una propiedad TextWrapping
que habilita la entrada de TextWrapping
; La etiqueta no tiene esto.
Label
es ContentControl
que significa que puede establecer cualquier cosa como contenido para ella. Absolutamente cualquier cosa incluyendo cadenas, números, fechas, otros controles, imágenes, formas, etc. TextBlock
solo puede manejar strings
.