Control.FocusState Propiedad

Definición

Obtiene un valor que especifica si este control tiene el foco y el modo por el que se obtuvo el foco.

C#
public FocusState FocusState { get; }

Valor de propiedad

Valor de la enumeración. Un valor de Unfocused indica que el control no tiene el foco.

Comentarios

Esta propiedad admite controles que usan diferentes estilos visuales en función de si el control se ha centrado en el teclado o por otros medios. Algunos controles usan estados visuales que muestran un indicador de foco visible si el control se ha centrado en una acción de teclado, pero no muestran el indicador si el control se ha centrado en una acción de puntero. La lógica interna de este control implementa OnGotFocus y, a continuación, obtiene el valor de FocusState del remitente. Si FocusState es Keyboard, se carga un estado visual con nombre diferente que incluye un rectángulo de foco, llamando a GoToState. Normalmente, los estados visuales relacionados con el foco se agrupan en el XAML de la plantilla de control predeterminada. Los controles personalizados que quieran usar objetos visuales de enfoque diferentes en función de los medios de enfoque pueden implementar esta misma lógica. Consulta OnGotFocus.

Otra manera de usar esta propiedad es usar FocusManager para determinar qué elemento de la interfaz de usuario general tiene el foco y, a continuación, llamar a FocusState en ese elemento para obtener información sobre cómo ese control recibió el foco.

Notas de las versiones anteriores

Nota

En Windows 8, cuando FocusState es Programmatic, el objeto visual de foco del teclado se muestra incluso si el método anterior de entrada era puntero. En Windows 8.1, cuando se llama al foco (FocusState.Programmatic), el elemento FocusState anterior, puntero oteclado, se conserva para que se muestre el objeto visual de foco correcto. Esto significa que si compruebas el valor de la propiedad FocusState después de llamar a Focus (FocusState.Programmatic), la propiedad FocusState tendrá un valor de Pointer o Keyboard.

En una aplicación compilada para Windows 8, pero que se ejecuta en Windows 8.1, se conserva el comportamiento del Windows 8. El valor de la propiedad FocusState es Programmatic y se muestra el objeto visual de foco del teclado.

Nota

Las clases que heredan de ItemsControl, como ListBox y AutoSuggestBox, no propagan la propiedad FocusState. Siempre devolverán Desenfocado. Acceda al valor correcto a través de RoutedEventArgs.OriginalSource.

Se aplica a

Producto Versiones
WinRT Build 10240, Build 10586, Build 14383, Build 15063, Build 16299, Build 17134, Build 17763, Build 18362, Build 19041, Build 20348, Build 22000, Build 22621, Build 26100