FocusManager Clase

Definición

Proporciona un conjunto de métodos estáticos, propiedades adjuntas y eventos para determinar y establecer ámbitos de foco y para establecer el elemento centrado dentro del ámbito.

public ref class FocusManager abstract sealed
public static class FocusManager
type FocusManager = class
Public Class FocusManager
Herencia
FocusManager

Comentarios

En Windows Presentation Foundation (WPF) hay dos conceptos relacionados con el foco: el foco del teclado y el enfoque lógico.

El foco del teclado pertenece al elemento que recibe actualmente la entrada del teclado. Solo puede haber un elemento con el foco del teclado. Este elemento con foco de teclado se ha IsKeyboardFocused establecido en true. Keyboard.FocusedElement devuelve el elemento con el foco del teclado.

El foco lógico pertenece al FocusManager.FocusedElement dentro de un ámbito de enfoque específico.

Un ámbito de enfoque es un elemento contenedor que realiza un seguimiento de FocusManager.FocusedElement dentro de su ámbito. De forma predeterminada, la Window clase es un ámbito de foco como las Menuclases , ContextMenuy ToolBar . Un elemento que es un ámbito de foco se ha IsFocusScope establecido en true.

Puede haber varios elementos con foco lógico, pero solo puede haber un elemento con foco lógico dentro de un único ámbito de foco. Un elemento con foco lógico no tiene necesariamente el foco del teclado, pero un elemento con foco de teclado tendrá el foco lógico. Es posible definir un ámbito de enfoque dentro de un ámbito de enfoque. En este caso, tanto el ámbito de enfoque primario como el ámbito de enfoque secundario pueden tener un FocusManager.FocusedElement.

En el escenario siguiente se muestra cómo cambia el foco del teclado y el foco lógico en una aplicación WPF que tiene un Window elemento con TextBox y un Menu que tiene .MenuItem Cuando el foco del teclado cambia de TextBox a , MenuItempierde el TextBox foco del teclado, pero conserva el foco lógico para el ámbito del Window foco. Obtiene MenuItem el foco del teclado y obtiene el foco lógico para el ámbito del Menu foco. Cuando el foco del teclado vuelve a la raíz Window, el elemento del Window ámbito de foco con el foco lógico obtendrá el foco del teclado, que en este caso es .TextBox Ahora TextBox tiene el foco del teclado y el foco lógico. Pierde el MenuItem foco del teclado, pero conserva el foco lógico para el ámbito del Menu foco.

El valor predeterminado de IsFocusScope en , WindowMenu, ToolBary ContextMenu es true.

Para obtener más información sobre el foco, vea Información general de entrada y Información general sobre el enfoque.

Campos

Nombre Description
FocusedElementProperty

Identifica la FocusedElement propiedad adjunta.

GotFocusEvent

Identifica el GotFocus evento adjunto.

IsFocusScopeProperty

Identifica la IsFocusScope propiedad adjunta.

LostFocusEvent

Identifica el LostFocus evento adjunto.

Propiedades adjuntas

Nombre Description
FocusedElement

Determina si el elemento al que está asociada esta propiedad tiene el foco lógico.

IsFocusScope

Determina si el elemento al que está asociada esta propiedad es un ámbito de foco.

Métodos

Nombre Description
AddGotFocusHandler(DependencyObject, RoutedEventHandler)

Agrega un controlador para el GotFocus evento adjunto.

AddLostFocusHandler(DependencyObject, RoutedEventHandler)

Agrega un controlador para el LostFocus evento adjunto.

GetFocusedElement(DependencyObject)

Obtiene el elemento con el foco lógico dentro del ámbito de foco especificado.

GetFocusScope(DependencyObject)

Determina el antecesor más cercano del elemento especificado que ha IsFocusScope establecido en true.

GetIsFocusScope(DependencyObject)

Determina si el objeto especificado DependencyObject es un ámbito de foco.

RemoveGotFocusHandler(DependencyObject, RoutedEventHandler)

Quita un controlador para el GotFocus evento adjunto.

RemoveLostFocusHandler(DependencyObject, RoutedEventHandler)

Quita un controlador para el LostFocus evento adjunto.

SetFocusedElement(DependencyObject, IInputElement)

Establece el foco lógico en el elemento especificado.

SetIsFocusScope(DependencyObject, Boolean)

Establece el especificado DependencyObject como ámbito de foco.

Eventos adjuntos

Nombre Description
GotFocus

Se produce cuando un elemento obtiene el foco.

LostFocus

Se produce cuando un elemento pierde el foco.

Se aplica a