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 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 |
| 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. |