Exportar (0) Imprimir
Expandir todo
Expandir Minimizar
Este artículo se tradujo de forma manual. Mueva el puntero sobre las frases del artículo para ver el texto original.
Traducción
Original

UIElement.Focusable (Propiedad)

Obtiene o establece un valor que indica si el elemento puede recibir el foco. Esta es una propiedad de dependencia.

Espacio de nombres:  System.Windows
Ensamblado:  PresentationCore (en PresentationCore.dll)
XMLNS para XAML: http://schemas.microsoft.com/winfx/2006/xaml/presentation, http://schemas.microsoft.com/netfx/2007/xaml/presentation

public bool Focusable { get; set; }
<object Focusable="bool" .../>

Valor de propiedad

Tipo: System.Boolean
Es true si el elemento puede tener el foco; en caso contrario, es false. El valor predeterminado es false, pero vea la sección Comentarios.

Implementaciones

IInputElement.Focusable

Campo de identificador

FocusableProperty

Propiedades de metadatos establecidas en true.

Ninguno

Sólo el elemento con foco recibe las acciones del teclado.

Focusable es el descriptor de acceso de propiedad de Microsoft .NET que realmente es una propiedad de dependencia. El valor "predeterminado" aparente de esta propiedad de dependencia concreta se establece con frecuencia de manera diferente en las clases de elemento derivadas, particularmente en los controles. Esto suele ocurrir de dos maneras:

  • Una clase derivada determinada heredada la propiedad de dependencia, pero esa clase derivada invalida los metadatos de la propiedad de dependencia y cambia el valor predeterminado de la propiedad.

  • Se aplica un estilo o plantilla a un elemento, que establece que el valor de la propiedad de dependencia de manera diferente.

Por ejemplo, el "valor predeterminado" aparente de Focusable para un control Button será true, aunque Button hereda directamente Focusable como una propiedad de common language runtime (CLR) del objeto UIElement. Esto se debe a que el valor de los metadatos aplicados para la propiedad de dependencia Focusable se invalidaron dentro del constructor estático de la clase base Control, que está situada entre Button y UIElement en la jerarquía de clases.

Cuando la hereda Control o sus clases derivadas, Control vuelve a definir el valor predeterminado de esta propiedad como true.

Cuando la hereda Label (que es una clase derivada Control), el valor predeterminado se vuelve a definir de nuevo como false.

Notas para los herederos

Al derivar directamente de UIElement (en contraposición a Control), considere si desea que el elemento pueda recibir el foco, porque el elemento no puede recibirlo de forma predeterminada. Si desea que el elemento pueda recibir el foco, invalide los metadatos de esta propiedad dentro del constructor estático del tipo de la forma siguiente:


FocusableProperty.OverrideMetadata(typeof(myElement), new UIPropertyMetadata(true));


donde myElement debe ser el nombre de clase del tipo en el que se invalida el valor de metadatos.

En el código de ejemplo siguiente se muestra una plantilla de control para un control personalizado determinado, que establece Focusable false en uno de los elementos dentro de la plantilla.


<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>


.NET Framework

Compatible con: 4, 3.5, 3.0

.NET Framework Client Profile

Compatible con: 4, 3.5 SP1

Windows 7, Windows Vista SP1 o posterior, Windows XP SP3, Windows Server 2008 (no se admite Server Core), Windows Server 2008 R2 (se admite Server Core con SP1 o posterior), Windows Server 2003 SP2

.NET Framework no admite todas las versiones de todas las plataformas. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

Adiciones de comunidad

AGREGAR
Mostrar:
© 2015 Microsoft