Control.FocusState Propiedad
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Obtiene un valor que especifica si este control tiene el foco y el modo por el que se obtuvo el foco.
public:
property FocusState FocusState { FocusState get(); };
FocusState FocusState();
public FocusState FocusState { get; }
var focusState = control.focusState;
Public ReadOnly Property FocusState As FocusState
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.