Compartilhar via


FocusManager Classe

Definição

Fornece um conjunto de métodos estáticos, propriedades anexadas e eventos para determinar e definir escopos de foco e para definir o elemento focalizado dentro do escopo.

public ref class FocusManager abstract sealed
public static class FocusManager
type FocusManager = class
Public Class FocusManager
Herança
FocusManager

Comentários

No WPF (Windows Presentation Foundation) há dois conceitos relacionados ao foco: foco do teclado e foco lógico.

O foco do teclado pertence ao elemento que está recebendo entrada de teclado no momento. Só pode haver um elemento com foco no teclado. Esse elemento com foco no teclado foi IsKeyboardFocused definido como true. Keyboard.FocusedElement retorna o elemento com foco no teclado.

O foco lógico pertence ao FocusManager.FocusedElement dentro de um escopo de foco específico.

Um escopo de foco é um elemento de contêiner que controla o FocusManager.FocusedElement dentro de seu escopo. Por padrão, a Window classe é um escopo de foco, assim como as Menuclasses , ContextMenue ToolBar . Um elemento que é um escopo de foco foi IsFocusScope definido como true.

Pode haver vários elementos com foco lógico, mas só pode haver um elemento com foco lógico em um único escopo de foco. Um elemento com foco lógico não tem necessariamente o foco do teclado, mas um elemento com foco no teclado terá foco lógico. É possível definir um escopo de foco dentro de um escopo de foco. Nesse caso, o escopo de foco pai e o escopo de foco filho podem ter um FocusManager.FocusedElement.

O cenário a seguir ilustra como o foco do teclado e o foco lógico mudam em um aplicativo WPF que tem um Window com um TextBox e um Menu que tem um MenuItem. Quando o TextBox foco do teclado muda do para o , o perde o MenuItemTextBox foco do teclado, mas mantém o foco lógico para o escopo de Window foco. O MenuItem obtém o foco do teclado e obtém o foco lógico para o escopo de Menu foco. Quando o foco do teclado retorna para a raiz Window, o elemento no Window escopo de foco com foco lógico obterá o foco do teclado, que nesse caso é o TextBox. O TextBox agora tem foco no teclado e foco lógico. O perde o MenuItem foco do teclado, mas mantém o foco lógico para o escopo de Menu foco.

O valor padrão de IsFocusScope em um Window, Menu, ToolBare ContextMenu é true.

Para obter mais informações sobre o foco, consulte a Visão geral de entrada e a Visão geral do foco.

Campos

FocusedElementProperty

Identifica a propriedade FocusedElement anexada.

GotFocusEvent

Identifica o evento GotFocus anexado.

IsFocusScopeProperty

Identifica a propriedade IsFocusScope anexada.

LostFocusEvent

Identifica o evento LostFocus anexado.

Propriedades Anexadas

FocusedElement

Determina se o elemento ao qual essa propriedade está anexado tem foco lógico.

IsFocusScope

Determina se o elemento ao qual essa propriedade está anexada é um escopo de foco.

Métodos

AddGotFocusHandler(DependencyObject, RoutedEventHandler)

Adiciona um manipulador ao evento anexado GotFocus.

AddLostFocusHandler(DependencyObject, RoutedEventHandler)

Adiciona um manipulador ao evento anexado LostFocus.

GetFocusedElement(DependencyObject)

Obtém o elemento com o foco lógico dentro do escopo de foco especificado.

GetFocusScope(DependencyObject)

Determina o ancestral mais próximo do elemento especificado que tem IsFocusScope definido como true.

GetIsFocusScope(DependencyObject)

Determina se o DependencyObject especificado é um escopo de foco.

RemoveGotFocusHandler(DependencyObject, RoutedEventHandler)

Remove um manipulador para o evento anexado GotFocus.

RemoveLostFocusHandler(DependencyObject, RoutedEventHandler)

Remove um manipulador para o evento anexado LostFocus.

SetFocusedElement(DependencyObject, IInputElement)

Determina o foco lógico no elemento especificado.

SetIsFocusScope(DependencyObject, Boolean)

Define o DependencyObject especificado como um escopo de foco.

Eventos Anexados

GotFocus

Ocorre quando um elemento tem o foco.

LostFocus

Ocorre quando um elemento perde o foco.

Aplica-se a