Silverlight - Texto
En este capítulo, veremos qué ofrece Silverlight para mostrar texto. El bloque de texto se utiliza para toda la representación de texto y Silverlight. Otras características importantes son:
- Puede utilizarse para texto sin formato simple o puede aplicar una combinación de estilos de formato.
- Silverlight admite un conjunto estándar de fuentes integradas.
- También puede descargar fuentes personalizadas cuando el estilo visual de su aplicación necesite algo menos común.
Bloque de texto
Para mostrar texto usamos el elemento de libro de texto Silverlight, que es un control ligero para mostrar pequeñas cantidades de texto de solo lectura. De hecho, ya lo hemos visto bastante, ya que su uso básico no necesita mucha explicación. Simplemente establece la propiedad de texto y muestra ese texto por ti.
<TextBlock Text = "Print Testing" HorizontalAlignment Center" FontFamily = "Georgia"/>
La herencia jerárquica de la clase TextBlock es la siguiente,
A continuación se muestran los properties de TextBlock clase.
No Señor. | Descripción de propiedad |
---|---|
1 | ContentEnd Obtiene un objeto TextPointer para el final del contenido de texto en TextBlock. |
2 | ContentStart Obtiene un objeto TextPointer para el inicio del contenido de texto en TextBlock. |
3 | IsTextSelectionEnabled Obtiene o establece un valor que indica si la selección de texto está habilitada en TextBlock, ya sea mediante la acción del usuario o llamando a la API relacionada con la selección. |
4 | IsTextSelectionEnabledProperty Identifica la propiedad de dependencia IsTextSelectionEnabled. |
5 | LineHeight Obtiene o establece la altura de cada línea de contenido. |
6 | MaxLines Obtiene o establece el número máximo de líneas de texto que se muestran en TextBlock. |
7 | SelectedText Obtiene un rango de texto del texto seleccionado. |
8 | SelectionEnd Obtiene la posición final del texto seleccionado en TextBlock. |
9 | SelectionHighlightColor Obtiene o establece el pincel utilizado para resaltar el texto seleccionado. |
10 | SelectionStart Obtiene la posición inicial del texto seleccionado en TextBlock. |
11 | Text Obtiene o establece el contenido de texto de un TextBlock. |
12 | TextAlignment Obtiene o establece un valor que indica la alineación horizontal del contenido del texto. |
13 | TextTrimming Obtiene o establece el comportamiento de recorte de texto que se utilizará cuando el contenido desborde el área de contenido. |
14 | TextWrapping Obtiene o establece cómo TextBlock envuelve el texto. |
A continuación, se utilizan comúnmente events de TextBlock clase.
No Señor. | Descripción del evento |
---|---|
1 | ContextMenuOpening Ocurre cuando el sistema procesa una interacción que muestra un menú contextual. |
2 | SelectionChanged Ocurre cuando la selección de texto ha cambiado. |
A continuación se muestran los methods en TextBlock clase.
No Señor. | Método y descripción |
---|---|
1 | Focus Enfoca TextBlock, como si fuera un control enfocable convencionalmente. |
2 | Select Selecciona un rango de texto en TextBlock. |
3 | SelectAll Selecciona todo el contenido en TextBlock. |
correr
A veces, desea un control detallado sobre el formato y la configuración de un estilo para un bloque de texto completo. A veces es útil formatear palabras individuales o incluso letras, y si lo desea, en lugar de usar elText propiedad, pones el texto dentro de la TextBlockcomo contenido. Si está utilizando un código, esto corresponde a agregar elementos alTextBlock propiedad en línea.
Con este enfoque, puede agregar una serie de elementos de ejecución. Cada ejecución admite la misma familia de fuentes, peso frontal, primer plano, etc., para controlar el estilo del texto. Aunque Run es un elemento separado, esto no interrumpe el flujo.
Echemos un vistazo a un ejemplo simple, que contiene múltiples Run elemento interior TextBlock. A continuación se muestra el código XAML.
<UserControl x:Class = "SilverlightRunDemo.MainPage"
xmlns = "http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x = "http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d = "http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc = "http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable = "d"
d:DesignHeight = "300" d:DesignWidth = "400">
<Grid x:Name = "LayoutRoot" Background = "White">
<TextBlock Width = "192" TextWrapping = "Wrap" FontFamily = "Verdana">
<Run Text = "Hello, " />
<Run FontWeight = "Bold" Text = "world!" />
<Run Text = "You" />
<Run FontStyle = "Italic" Text = " are " />
<Run Text = "learning" FontSize = "40" FontFamily = "01d English Text MT" />
<Run Text = " the " />
<Run Text = "basics of " Foreground = "Blue" />
<Run Text = " Silverlight." FontSize = "30" />
</TextBlock>
</Grid>
</UserControl>
Cuando se compile y ejecute el código anterior, verá el siguiente resultado.
Como puede ver, este bloque de texto se organiza con diferentes estilos de formato utilizando el Run elemento.
Por cierto, no es necesario ajustar cada fragmento de texto de una vez. Puede dejar la mayor parte del contenido de un bloque de texto como texto sin formato y simplemente aplicarrun a las partes que necesitan un formato diferente como se muestra a continuación.
<TextBlock> Hello,
<Run FontWeight = "Bold" Text =" world!"/>
</TextBlock>
LineBreak
Silverlight generalmente ignora los saltos de línea en el XAML. Se asume que la mayoría de los espacios en blanco están ahí para facilitar su lectura porque realmente desea que aparezca ese espacio.
Echemos un vistazo a este código XAML, que tiene tres líneas de texto separadas.
<TextBlock>
This is not the end.
It is not even the beginning of the end.
But it is, perhaps, the end of the beginning
</TextBlock>
Cuando se compile y ejecute el código anterior, verá el siguiente resultado.
Como puede ver, ha ignorado los saltos de línea y ha ejecutado todo el texto junto.
Si habilita text wrapping, colocará saltos de línea donde debe estar para que el texto encaje, pero ignorará los saltos de línea en su ejemplo.
Si solo desea agregar saltos de línea explícitos, debe agregar una etiqueta de salto de línea dentro de su bloque de texto. El texto que sigue comenzará en una nueva línea.
Echemos un vistazo al mismo ejemplo nuevamente agregando el LineBreak etiqueta.
<TextBlock FontSize = "16">
This is not the end.
<LineBreak/>
It is not even the beginning of the end.
<LineBreak/>
But it is, perhaps, the end of the beginning
</TextBlock>
Cuando se ejecuta el código anterior, verá que ahora se ve como se especifica en XAML.
Fuentes integradas
Silverlight tiene un conjunto fijo de familias de fuentes integradas. Las fuentes en realidad tienen diferentes apellidos por razones históricas. La familia predeterminada es técnicamente diferente en Mac OS y Windows, como en Mac OS, es Lucida Grande, mientras que en Windows es casi idéntica pero se llama Lucida Sans Unicode.
Algunas de las fuentes más utilizadas se indican a continuación.
Fuentes |
---|
Arial |
Arial Negro |
Comic Sans MS |
Courier Nuevo |
Georgia |
Lucida Grande (Mac) o Lucida Sans Unicode (Windows) |
Times New Roman |
Trebuchet MS |
Verdana |