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.
Actualización: noviembre 2007
En este ejemplo se muestra cómo utilizar los estilos de Windows Presentation Foundation (WPF) para reemplazar el host de contenido predeterminado de un objeto TextBox.
El host del contenido es el elemento que representa el contenido de un control TextBox. La plantilla de control predeterminada de TextBox especifica un objeto ScrollViewer como host de contenido. Para ver un ejemplo de la plantilla de control predeterminada de un objeto TextBox, vea Ejemplo de ControlTemplate de TextBox.
En los casos donde las características de desplazamiento proporcionadas por ScrollViewer no se desean o son innecesarias, se puede especificar un elemento AdornerDecorator más ligero como host de contenido para TextBox.
Para obtener un ejemplo de trabajo que incluye éste, vea Ejemplo Replace the Default Content Host for a TextBox.
Ejemplo
La plantilla de control ControlTemplate para el control TextBox debe contener exactamente un elemento etiquetado como elemento de host de contenido. Para etiquetar un elemento como host de contenido, asígnele el nombre especial PART_ContentHost. El elemento que hospeda el contenido debe ser un ScrollViewer o AdornerDecorator. Dicho elemento no puede hospedar elementos secundarios.
En el ejemplo de Lenguaje de marcado de aplicaciones extensible (XAML) siguiente se define un estilo que invalida la plantilla de control predeterminada de TextBox. Este estilo es compatible con los elementos que descienden de TextBoxBase. En el ejemplo, se especifica un objeto AdornerDecorator como host de contenido.
<Window.Resources>
<Style x:Key="TextBoxNoScrollViewer" TargetType="{x:Type TextBoxBase}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type TextBoxBase}">
<Border
CornerRadius="2"
Background="{TemplateBinding Background}"
BorderThickness="{TemplateBinding BorderThickness}"
BorderBrush="{TemplateBinding BorderBrush}"
>
<!--
The control template for a TextBox or RichTextBox must
include an element tagged as the content host. An element is
tagged as the content host element when it has the special name
PART_ContentHost. The content host element must be a ScrollViewer,
or an element that derives from Decorator.
-->
<AdornerDecorator
x:Name="PART_ContentHost"
Focusable="False"
/>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Window.Resources>
En el ejemplo de XAML siguiente se define un control TextBox que utiliza el estilo declarado previamente utilizando el atributo Style combinado con una referencia de recurso estática al x:Key (atributo) del estilo.
<TextBox
Grid.Column="0"
AcceptsReturn="True"
AcceptsTab="True"
TextWrapping="Wrap"
VerticalScrollBarVisibility="Auto"
HorizontalScrollBarVisibility="Auto"
Style="{StaticResource TextBoxNoScrollViewer}"
>
TextBox styled not to use a ScrollViewer as the content host.
</TextBox>
Vea también
Conceptos
Información general sobre TextBox