FocusManager Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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 |
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. |