FocusManager Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Fournit un ensemble de méthodes statiques, de propriétés jointes et d'événements pour déterminer et définir des portées de focus et pour définir l'élément ayant le focus dans la portée.
public ref class FocusManager abstract sealed
public static class FocusManager
type FocusManager = class
Public Class FocusManager
- Héritage
-
FocusManager
Remarques
Dans Windows Presentation Foundation (WPF), il existe deux concepts concernant le focus : le focus clavier et le focus logique.
Le focus clavier concerne l’élément qui reçoit actuellement l’entrée du clavier. Il ne peut y avoir qu’un seul élément avec le focus clavier. Cet élément avec le focus clavier a IsKeyboardFocused la valeur true
.
Keyboard.FocusedElement retourne l’élément avec le focus clavier.
Le focus logique se rapporte au FocusManager.FocusedElement dans une étendue de focus spécifique.
Une étendue de focus est un élément conteneur qui effectue le suivi de dans FocusManager.FocusedElement son étendue. Par défaut, la Window classe est une étendue de focus, comme le sont les Menuclasses , ContextMenuet ToolBar . Un élément qui est une étendue de focus a IsFocusScope défini sur true
.
Il peut y avoir plusieurs éléments avec le focus logique, mais il ne peut y avoir qu’un seul élément avec le focus logique dans une seule étendue de focus. Un élément avec le focus logique n’a pas nécessairement le focus clavier, mais un élément avec le focus clavier aura le focus logique. Il est possible de définir une étendue de focus dans une étendue de focus. Dans ce cas, l’étendue du focus parent et l’étendue du focus enfant peuvent avoir un FocusManager.FocusedElement.
Le scénario suivant illustre la façon dont le focus clavier et le focus logique changent dans une application WPF qui a un Window avec un TextBox et un Menu qui a un MenuItem. Lorsque le focus du clavier passe du TextBox au MenuItem, le focus du clavier perd le TextBox focus du clavier, mais conserve le focus logique pour l’étendue du Window focus. obtient le MenuItem focus clavier et obtient le focus logique pour l’étendue du Menu focus. Lorsque le focus clavier revient à la racine Window, l’élément dans Window l’étendue du focus avec le focus logique obtient le focus clavier, qui dans ce cas est le TextBox. Le a maintenant le TextBox focus clavier et le focus logique. Le perd le MenuItem focus clavier, mais conserve le focus logique pour l’étendue du Menu focus.
La valeur par défaut de IsFocusScope sur un Window, Menu, ToolBaret ContextMenu est true
.
Pour plus d’informations sur le focus, consultez Vue d’ensemble des entrées et Vue d’ensemble du focus.
Champs
FocusedElementProperty |
Identifie la propriété jointe FocusedElement. |
GotFocusEvent |
Identifie l’événement attaché GotFocus. |
IsFocusScopeProperty |
Identifie la propriété jointe IsFocusScope. |
LostFocusEvent |
Identifie l’événement attaché LostFocus. |
Propriétés attachées
FocusedElement |
Détermine si l'élément auquel cette propriété est jointe a le focus logique. |
IsFocusScope |
Détermine si l'élément auquel cette propriété est jointe est une portée de focus. |
Méthodes
AddGotFocusHandler(DependencyObject, RoutedEventHandler) |
Ajoute un gestionnaire pour l'événement attaché GotFocus. |
AddLostFocusHandler(DependencyObject, RoutedEventHandler) |
Ajoute un gestionnaire pour l'événement attaché LostFocus. |
GetFocusedElement(DependencyObject) |
Obtient l'élément avec le focus logique dans la portée de focus spécifiée. |
GetFocusScope(DependencyObject) |
Détermine l'ancêtre le plus proche de l'élément spécifié dont la propriété IsFocusScope a la valeur |
GetIsFocusScope(DependencyObject) |
Détermine si le DependencyObject spécifié est une portée de focus. |
RemoveGotFocusHandler(DependencyObject, RoutedEventHandler) |
Supprime un gestionnaire pour l'événement attaché GotFocus. |
RemoveLostFocusHandler(DependencyObject, RoutedEventHandler) |
Supprime un gestionnaire pour l'événement attaché LostFocus. |
SetFocusedElement(DependencyObject, IInputElement) |
Définit le focus logique sur l'élément spécifié. |
SetIsFocusScope(DependencyObject, Boolean) |
Définit le DependencyObject spécifié comme une portée de focus. |
Événements attachés
GotFocus |
Se produit lorsqu'un élément obtient le focus. |
LostFocus |
Se produit lorsqu'un élément perd le focus. |