Sugerencias para la aplicación de estilos al control TextBox
El control TextBox se puede usar para obtener los datos proporcionados por el usuario o para mostrar texto. Por lo general, se usa para texto editable, pero también se puede establecer en modo de solo lectura. Los objetos TextBox pueden mostrar varias líneas y ajustar el texto al tamaño del control.
Al igual que con los demás controles, el control TextBox se puede modificar y mostrar una apariencia muy distinta a la predeterminada. La apariencia predeterminada del control TextBox es la siguiente:
Propiedades de interés del control TextBox
El control TextBox es un control de texto. Por tanto, puede mostrar texto en el control TextBox si establece la propiedad Text en Propiedades comunes en el panel Propiedades.
Para hacer que el control TextBox sea de solo lectura, seleccione la propiedad IsReadOnly.
Si desea permitir que los usuarios agreguen caracteres de nueva línea al texto que escriban, seleccione la propiedad AcceptsReturn. Si hace esto, quizá desee habilitar barras de desplazamiento. Para ello, establezca las propiedades HorizontalScrollBarVisibility y VerticalScrollBarVisibility.
Para especificar la fuente, el tamaño de fuente, etc., establezca las propiedades de la categoría Texto del panel Propiedades. Incluso puede agregar fuentes personalizadas al proyecto e incrustarlas para usarlas en los controles de texto.
Para obtener más información, vea Dibujar texto.
Puede establecer estas propiedades de varias formas:
Establecer las propiedades del objeto Después de dibujar un objeto TextBox en la mesa de trabajo, puede establecer las propiedades del objeto directamente. Si desea que varios objetos TextBox usen los mismos valores, establezca estas propiedades en un estilo.
Establecer las propiedades en un estilo Si establece estas propiedades en el estilo del objeto TextBox, todos los objetos TextBox que usen ese estilo usarán de forma predeterminada esos valores. Puede sobrescribir los valores de un objeto específico.
Para obtener más información, vea Crear un estilo.
Elementos de la plantilla TextBox
El control TextBox usa una plantilla para definir su apariencia: la plantilla TextBox. Cada elemento de la plantilla desempeña un papel en la apariencia y el comportamiento del objeto TextBox al que se aplica la plantilla.
En la plantilla, pueden existir otros objetos para adornar la apariencia del control TextBox, pero los elementos enumerados en la tabla siguiente están asociados a su comportamiento en un contrato.
Para ver los elementos de la plantilla, abra el panel Elementos al modificar la plantilla. En el panel Objetos y escala de tiempo, aparece un icono junto a cada objeto que está actuando como elemento en el panel Elementos.
Nombre de elemento |
Tipo de objeto |
Descripción |
---|---|---|
ContentElement |
FrameworkElement |
Objeto que muestra texto. Este elemento es obligatorio. |
Los demás objetos de la plantilla TextBox se usan para cambiar la apariencia del control TextBox en varios estados.
Estados del control TextBox
De forma predeterminada, el control TextBox puede estar en uno de los cuatro estados del grupo de estados CommonStates, que se pueden ver en el panel Estados al modificar una plantilla TextBox:
Nombre del estado |
Descripción |
---|---|
Normal |
Apariencia del control TextBox cuando no hay ninguna interacción con el control. |
MouseOver |
Apariencia del control TextBox cuando el usuario mueve el puntero sobre él. |
Pressed |
Apariencia del control TextBox cuando el usuario hace clic en él, o cuando el control recibe el foco y el usuario presiona ENTRAR o la BARRA ESPACIADORA. |
Disabled |
Apariencia del control TextBox cuando la propiedad IsEnabled se ha establecido en False. |
El control TextBox puede estar en uno de los dos estados siguientes del grupo de estados FocusStates:
Nombre del estado |
Descripción |
---|---|
Unfocused |
Apariencia del control TextBox cuando no recibe el foco del teclado. |
Focused |
Apariencia del control TextBox cuando recibe el foco del teclado. Por ejemplo, es posible que un usuario presione la tecla TAB para recorrer los objetos de la aplicación hasta que el foco del teclado esté en el control TextBox. |
El control TextBox puede estar en alguno de los tres estados siguientes del grupo de estados ValidationStates:
Nombre del estado |
Descripción |
---|---|
Valid |
Apariencia del control TextBox cuando es válido. |
InvalidUnfocused |
Apariencia del control TextBox cuando no es válido y no tiene el foco del teclado. |
InvalidFocused |
Apariencia del control TextBox cuando no es válido y tiene el foco del teclado. |
Sugerencia: |
---|
Un grupo de estados contiene los estados visuales que forman parte de la misma categoría lógica y que no se pueden mostrar al mismo tiempo. Por ejemplo, el grupo CommonStates incluye estados relacionados con la interacción del usuario mediante un dispositivo de entrada como el mouse. Solo se puede mostrar un estado de este grupo de estados cada vez, pero un estado de un grupo sí se puede mostrar al mismo tiempo que un estado de otro grupo de estados. |
Al seleccionar un estado, se activa la grabación del estado y se grabarán todos los cambios que se realicen para dicho estado. Para desactivar la grabación del estado, haga clic en el botón de grabación o seleccione Base en el panel Estados. Para modificar la apariencia del control cuando dos estados diferentes están activos, puede anclar una vista previa de un estado de un grupo de estados mientras modifica un estado de otro grupo de estados.
Para convertir objetos en un control TextBox
Para modificar la plantilla de un control TextBox, realice una de las acciones siguientes:
Dibuje un control TextBox en la mesa de trabajo y, a continuación, cree una copia de la plantilla predeterminada.
Para obtener más información, vea Crear o modificar una plantilla.
Diseñe el aspecto del control TextBox dibujando objetos o importando material gráfico y, a continuación, use el comando Convertir en control.
Si usa el comando Convertir en control, siga los pasos que se indican a continuación para asegurarse de crear todos los objetos que la plantilla TextBox requiere:
Para mostrar texto en el control TextBox, incluya un objeto TextBlock con los objetos que constituirán la apariencia del control TextBox.
Cuando se convierte material gráfico que contiene un objeto TextBlock en una plantilla para un control TextBox, el comando Convertir en control hace lo siguiente:
Pone un objeto ScrollViewer que representa el elemento ContentElement en la plantilla en lugar del control TextBlock.
Copia las propiedades de diseño del control TextBlock en el objeto ContentElement.
Copia las propiedades tipográficas del control TextBlock en el estilo del control TextBox. La plantilla adopta el estilo.
Copia la propiedad Text del control TextBlock en el objeto TextBox al que se aplica la plantilla.
Como alternativa, puede asignar un objeto al elemento ContentElement después de convertir los objetos en una plantilla de control. Para obtener más información, vea Asignar elementos de plantilla a objetos.
Agrupe los objetos en un panel de diseño, seleccione el panel de diseño y, a continuación, en el menú Herramientas, haga clic en Convertir en control.
En el cuadro de diálogo que aparece, seleccione TextBox, dé un nombre a la plantilla y seleccione la ubicación donde se almacenará la plantilla.
Después de hacer clic en Aceptar, Microsoft Expression Blend entra en el modo de edición de plantilla y muestra los objetos que forman el control TextBox. Puede continuar modificando la plantilla en este modo. Por ejemplo, agregar o modificar objetos, o bien seleccionar un estado en el panel Estados para modificar la apariencia de la plantilla en dicho estado.
Plantéese la posibilidad de enlazar algunas de las propiedades de pincel de los objetos de la plantilla a las siguientes propiedades del objeto TextBox que finalmente usará la plantilla:
Background
BorderBrush
Foreground
BorderThickness
Para obtener más información, vea Trasladar propiedades de objetos a la plantilla.
Para salir del modo de edición de plantilla, haga clic en [TextBox] en la barra de ruta de navegación situada en la parte superior de la mesa de trabajo, o haga clic en Ámbito superior en el panel Objetos y escala de tiempo.
Para obtener información acerca de cómo aplicar una plantilla TextBox nueva a otros objetos TextBox, vea Aplicar o quitar un recurso.
Referencias
Encontrará información detallada acerca de las propiedades y eventos del control TextBox de Microsoft Silverlight en la galería de controles de Silverlight (puede estar en inglés) en MSDN.
Vea también
Conceptos
Sugerencias para la aplicación de estilos a controles Silverlight comunes