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 focado 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. Pode haver apenas 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 escopo de foco específico.

Um escopo de foco é um elemento contêiner que acompanha o FocusManager.FocusedElement dentro do escopo dele. Por padrão, a Window classe é um escopo de foco, assim como as Menuclasses e ToolBar . ContextMenu Um elemento que é um escopo de foco definido IsFocusScope 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 do 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 WindowTextBox com e um Menu que tem um MenuItem. Quando o TextBox foco do teclado muda do para o MenuItem, o teclado perde o TextBox foco, mas mantém o foco lógico para o escopo de Window foco. Obtém o MenuItem foco do teclado e obtém o foco lógico para o escopo de Menu foco. Quando o foco do teclado retornar à 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 MenuItem teclado perde o foco, mas mantém o foco lógico para o escopo de Menu foco.

O valor padrão de IsFocusScope em um Window, Menue ToolBarContextMenu é true.

Para obter mais informações sobre o foco, consulte a Visão Geral de Entrada e a Visão Geral do Foco.

Campos

Nome Description
FocusedElementProperty

Identifica a FocusedElement propriedade anexada.

GotFocusEvent

Identifica o GotFocus evento anexado.

IsFocusScopeProperty

Identifica a IsFocusScope propriedade anexada.

LostFocusEvent

Identifica o LostFocus evento anexado.

Propriedades Anexadas

Nome Description
FocusedElement

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

IsFocusScope

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

Métodos

Nome Description
AddGotFocusHandler(DependencyObject, RoutedEventHandler)

Adiciona um manipulador para o GotFocus evento anexado.

AddLostFocusHandler(DependencyObject, RoutedEventHandler)

Adiciona um manipulador para o LostFocus evento anexado.

GetFocusedElement(DependencyObject)

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

GetFocusScope(DependencyObject)

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

GetIsFocusScope(DependencyObject)

Determina se o especificado DependencyObject é um escopo de foco.

RemoveGotFocusHandler(DependencyObject, RoutedEventHandler)

Remove um manipulador para o GotFocus evento anexado.

RemoveLostFocusHandler(DependencyObject, RoutedEventHandler)

Remove um manipulador para o LostFocus evento anexado.

SetFocusedElement(DependencyObject, IInputElement)

Define o foco lógico no elemento especificado.

SetIsFocusScope(DependencyObject, Boolean)

Define o especificado DependencyObject como um escopo de foco.

Eventos Anexados

Nome Description
GotFocus

Ocorre quando um elemento obtém o foco.

LostFocus

Ocorre quando um elemento perde o foco.

Aplica-se a