UIElement.Focusable UIElement.Focusable UIElement.Focusable UIElement.Focusable Property

Definición

Obtiene o establece un valor que indica si el elemento puede recibir el foco.Gets or sets a value that indicates whether the element can receive focus. Es una propiedad de dependencia.This is a dependency property.

public:
 property bool Focusable { bool get(); void set(bool value); };
public bool Focusable { get; set; }
member this.Focusable : bool with get, set
Public Property Focusable As Boolean

Valor de propiedad

true si el elemento admite foco; en caso contrario, false.true if the element is focusable; otherwise false. De manera predeterminada, es false.The default is false.

Implementaciones

Ejemplos

Ejemplo de código siguiente muestra una plantilla de control para un control personalizado determinado, que establece Focusable false en uno de los elementos dentro de la plantilla.The following example code illustrates a control template for a particular custom control, which sets Focusable false on one of the elements within the template.

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

Comentarios

Solo el elemento enfocado recibe la entrada de teclado.Only the focused element receives keyboard input.

Focusable es el Microsoft .NETMicrosoft .NET descriptor de acceso de propiedad para lo que es en realidad una propiedad de dependencia.Focusable is the Microsoft .NETMicrosoft .NET property accessor for what is in reality a dependency property. Esta propiedad de dependencia concreta con bastante frecuencia tiene el valor "predeterminado" aparente establecer de forma diferente en las clases de elemento derivadas, particularmente en los controles.This particular dependency property quite frequently has its apparent "default" value set differently in derived element classes, particularly in controls. Esto suele ocurrir en uno de dos maneras:This commonly occurs in one of two ways:

  • La propiedad de dependencia se hereda mediante una clase derivada concreta, pero eso derivada a clase invalida los metadatos de la propiedad de dependencia y cambia el valor de propiedad predeterminado.The dependency property is inherited by a particular derived class, but that derived class overrides the metadata of the dependency property and changes the property default value.

  • Un estilo o plantilla se aplica a un elemento, que establece ese valor de propiedad de dependencia de manera diferente.A style or template is applied to an element, which sets that dependency property value differently.

Por ejemplo, el "predeterminado" aparente de Focusable para un Button control será true, aunque Button hereda Focusable como un Common Language Runtime (CLR)common language runtime (CLR) propiedad directamente desde UIElement.For example, the apparent "default" of Focusable for a Button control will be true, even though Button inherits Focusable as a Common Language Runtime (CLR)common language runtime (CLR) property directly from UIElement. Esto es porque el valor de los metadatos aplicados para el Focusable se invalidó la propiedad de dependencia dentro del constructor estático de la Control clase base, que se encuentre entre Button y UIElement en la jerarquía de clases.This is because the applied metadata value for the Focusable dependency property was overridden within the static constructor of the Control base class, which is situated between Button and UIElement in the class hierarchy.

Cuando la hereda Control o sus clases derivadas, Control vuelve a definir el valor predeterminado de esta propiedad sea true.When inherited by Control or its derived classes, Control redefines the default value of this property to be true.

Cuando la hereda Label (que es un Control clase derivada), nuevamente se vuelve a definir el valor predeterminado para que sea false.When inherited by Label (which is a Control derived class), the default value is again redefined to be false.

Información sobre propiedades de dependenciaDependency Property Information

Campo de identificadorIdentifier field FocusableProperty
Establecen las propiedades de metadatos en trueMetadata properties set to true NingunaNone

Notas a los desarrolladores de herederos

Al derivar de UIElement directamente (en lugar de Control), considere la posibilidad de si desea que el elemento pueda recibir el foco, ya que de forma predeterminada el elemento no puede recibir el foco.When deriving from UIElement directly (as opposed to from Control), consider whether you wish your element to be focusable, because by default the element will not be focusable. Si desea que el elemento que se va a recibir el foco, invalidar los metadatos de esta propiedad en el constructor estático de su tipo como sigue:If you wish your element to be focusable, override the metadata for this property within your type's static constructor as follows: [!code-csharpCorePseudocode#UIElementShortOverride] [!code-vbCorePseudocode#UIElementShortOverride][!code-csharpCorePseudocode#UIElementShortOverride] [!code-vbCorePseudocode#UIElementShortOverride] donde myElement debe ser el nombre de clase del tipo que se va a reemplazar el valor de metadatos.where myElement should be the class name of the type that you are overriding the metadata value on.

Se aplica a

Consulte también: