Comparteix a través de


FocusManager Clase

Definición

Proporciona un conjunto de métodos estáticos, propiedades asociadas y eventos para determinar y establecer los ámbitos de foco, así como para establecer el elemento enfocado 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 foco 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 foco es un elemento contenedor que mantiene el seguimiento del elemento 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 enfoque. 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 .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 MenuItem, el foco del teclado pierde pero TextBox conserva el foco lógico para el ámbito del Window foco. Obtiene el MenuItem 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 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 de Menu foco.

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

Para obtener más información sobre el foco, consulte La información general de entrada y la información general del foco.

Campos

FocusedElementProperty

Identifica la propiedad adjunta FocusedElement.

GotFocusEvent

Identifica el evento adjunto GotFocus.

IsFocusScopeProperty

Identifica la propiedad adjunta IsFocusScope.

LostFocusEvent

Identifica el evento adjunto LostFocus.

Propiedades adjuntas

FocusedElement

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

IsFocusScope

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

Métodos

AddGotFocusHandler(DependencyObject, RoutedEventHandler)

Agrega un controlador para el evento adjunto GotFocus.

AddLostFocusHandler(DependencyObject, RoutedEventHandler)

Agrega un controlador para el evento adjunto LostFocus.

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 tiene la propiedad IsFocusScope establecida en true.

GetIsFocusScope(DependencyObject)

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

RemoveGotFocusHandler(DependencyObject, RoutedEventHandler)

Quita un controlador del evento adjunto GotFocus.

RemoveLostFocusHandler(DependencyObject, RoutedEventHandler)

Quita un controlador del evento adjunto LostFocus.

SetFocusedElement(DependencyObject, IInputElement)

Establece el foco lógico en el elemento especificado.

SetIsFocusScope(DependencyObject, Boolean)

Establece el DependencyObject especificado como un ámbito de foco.

Eventos adjuntos

GotFocus

Se produce cuando un elemento obtiene el foco.

LostFocus

Se produce cuando un elemento pierde el foco.

Se aplica a