Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
El TextBlock control proporciona compatibilidad con texto flexible para aplicaciones WPF. Este elemento se dirige principalmente a escenarios de interfaz de usuario básicos que no requieren más de un párrafo de texto. Admite propiedades que permiten un control preciso de la presentación, como FontFamily, FontSize, FontWeight, TextEffectsy TextWrapping. Agregue contenido de texto mediante la Text propiedad . Cuando se usa en XAML, el contenido entre la etiqueta de apertura y cierre se convierte en el texto del elemento.
Establecer contenido de texto
Establezca el contenido de texto en un TextBlock con dos enfoques:
Propiedad Text: para texto simple y con formato uniforme, use la Text propiedad . Este enfoque es sencillo y aplica el mismo formato a todo el texto.
<TextBlock Text="This is simple text." Margin="0,0,0,20"/>Propiedad Inlines: Para texto con formato mixto, use la propiedad Inlines. Esta colección contiene elementos insertados que permiten aplicar diferentes formatos a diferentes partes del texto.
<TextBlock Margin="0,0,0,20"> This text contains <Bold>bold</Bold> and <Italic>italic</Italic> formatting. </TextBlock>
Elementos en línea y formatos
La Inlines propiedad acepta una colección de Inline elementos que permiten el formato de texto enriquecido dentro de un único TextBlock. Los elementos en línea comunes incluyen:
- Run: representa una ejecución de texto sin formato o con formato uniforme.
- Span: agrupa otros elementos en línea y aplica el formato a todos los elementos contenidos.
- Bold: aplica formato de negrita al texto contenido.
- Italic: aplica formato cursiva al texto contenido.
- Underline: aplica formato de subrayado al texto contenido.
- Hyperlink: crea hipervínculos en los que se pueden hacer clic en el texto.
- LineBreak: inserta un salto de línea.
En este ejemplo se muestra el uso de elementos en línea.
<TextBlock Margin="0,0,0,20">
<Run FontWeight="Bold" Foreground="Blue">Welcome</Run>
<Run> to </Run>
<Span FontFamily="Courier New">
<Run>formatted</Run>
<Run Foreground="Red"> text</Run>
</Span>
<Run>!</Run>
</TextBlock>
También puede manipular la Inlines colección mediante programación para compilar texto con formato dinámicamente:
TextBlock textBlock = new TextBlock();
textBlock.Inlines.Add(new Bold(new Run("Important:")));
textBlock.Inlines.Add(new Run(" This is a message."));
Dim textBlock As New TextBlock()
textBlock.Inlines.Add(New Bold(New Run("Important:")))
textBlock.Inlines.Add(New Run(" This is a message."))
Ajuste de texto
La TextWrapping propiedad controla cómo se comporta el texto cuando llega al borde del TextBlock. Configúrelo con uno de los TextWrapping valores de enumeración.
-
NoWrap: El texto no se ajusta y se extiende más allá del TextBlock si es necesario. -
Wrap: El texto se ajusta automáticamente a la línea siguiente cuando llega al borde. -
WrapWithOverflow: el texto se ajusta si es posible, pero si una sola palabra es demasiado larga, se extiende más allá del límite.
<TextBlock TextWrapping="Wrap" Width="200" Margin="0,0,0,20">
This text will wrap to multiple lines when it reaches the width of 200 pixels.
</TextBlock>
El ajuste de texto es especialmente útil para diseños adaptativos y al mostrar contenido dinámico donde se desconoce la longitud del texto.
Características tipográficas y de OpenType
WPF TextBlock admite características avanzadas de tipografía OpenType a través de la Typography clase . Estas características permiten un control específico sobre la representación de texto, entre las que se incluyen:
- Ligaduras (combinando caracteres como "fi" en un solo glifo)
- Kerning (ajustar el espaciado entre pares de caracteres específicos)
- Alternativas estilísticas
- Límites pequeños
- Ornamentos tipográficos y caracteres ornamentales
Acceda a las características de tipografía a través de las propiedades adjuntas:
<TextBlock Typography.Kerning="True"
Typography.Capitals="SmallCaps"
Margin="0,0,0,20">
Typography Features
</TextBlock>
Para establecer características de tipografía en el código, use los métodos estáticos de la Typography clase :
TextBlock textBlock = new TextBlock();
textBlock.Text = "Typography Features";
Typography.SetKerning(textBlock, true);
Typography.SetCapitals(textBlock, FontCapitals.SmallCaps);
Dim textBlock As New TextBlock()
textBlock.Text = "Typography Features"
Typography.SetKerning(textBlock, True)
Typography.SetCapitals(textBlock, FontCapitals.SmallCaps)
Para obtener más información sobre las características de tipografía, vea Tipografía en WPF.
Hipervínculos
Agregue hipervínculos en los que se puede hacer clic dentro de un TextBlock usando el elemento Hyperlink. Los hipervínculos admiten la navegación a los URI y pueden responder a eventos de clic.
<TextBlock Margin="0,0,0,20">
For more information, visit
<Hyperlink NavigateUri="https://learn.microsoft.com">
Microsoft Learn
</Hyperlink>.
</TextBlock>
Controle los eventos de navegación de hipervínculos para controlar el comportamiento:
<TextBlock>
<Hyperlink NavigateUri="https://example.com"
RequestNavigate="Hyperlink_RequestNavigate">
Click here
</Hyperlink>
</TextBlock>
En el código subyacente, controle el RequestNavigate evento para abrir el vínculo en el explorador predeterminado:
private void Hyperlink_RequestNavigate(object sender, RequestNavigateEventArgs e)
{
Process.Start(new ProcessStartInfo
{
FileName = e.Uri.AbsoluteUri,
UseShellExecute = true
});
e.Handled = true;
}
Private Sub Hyperlink_RequestNavigate(sender As Object, e As RequestNavigateEventArgs)
Process.Start(New ProcessStartInfo With {
.FileName = e.Uri.AbsoluteUri,
.UseShellExecute = True
})
e.Handled = True
End Sub
TextBlock frente a RichTextBox
Aunque TextBlock es ideal para mostrar texto de solo lectura con formato, considere la posibilidad de usar RichTextBox cuando necesite:
- Varios párrafos con formato diferente
- Funcionalidades de edición de usuarios
- Sangría de texto
- Estructuras de documentos más complejas
TextBlock proporciona un mejor rendimiento y un modelo de programación más sencillo, por lo que es la opción preferida para la mayoría de los escenarios de visualización de texto de la interfaz de usuario.
Referencia
Secciones relacionadas
.NET Desktop feedback