FocusManager Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Fornisce un insieme di metodi statici, proprietà associate ed eventi per determinare e impostare gli ambiti dello stato attivo e per impostare l'elemento attivo all'interno dell'ambito.
public ref class FocusManager abstract sealed
public static class FocusManager
type FocusManager = class
Public Class FocusManager
- Ereditarietà
-
FocusManager
Commenti
In Windows Presentation Foundation (WPF) sono disponibili due concetti relativi allo stato attivo: lo stato attivo della tastiera e lo stato attivo logico.
Lo stato attivo della tastiera riguarda l'elemento che attualmente riceve l'input della tastiera. Può essere presente un solo elemento con lo stato attivo della tastiera. Questo elemento con lo stato attivo della tastiera è IsKeyboardFocused impostato su true
.
Keyboard.FocusedElement restituisce l'elemento con lo stato attivo della tastiera.
Lo stato attivo logico riguarda l'interno FocusManager.FocusedElement di un ambito specifico dello stato attivo.
Un ambito di messa a fuoco è un elemento contenitore che tiene traccia dell'ambito FocusManager.FocusedElement . Per impostazione predefinita, la Window classe è un ambito di stato attivo, come sono le Menuclassi , ContextMenue ToolBar . Un elemento che è un ambito di stato attivo è IsFocusScope impostato su true
.
Possono essere presenti più elementi con lo stato attivo logico, ma può essere presente un solo elemento con lo stato attivo logico all'interno di un singolo ambito di messa a fuoco. Un elemento con stato attivo logico non ha necessariamente lo stato attivo della tastiera, ma un elemento con lo stato attivo della tastiera avrà lo stato attivo logico. È possibile definire un ambito attivo all'interno di un ambito attivo. In questo caso, sia l'ambito dello stato attivo padre che l'ambito dello stato attivo figlio possono avere un FocusManager.FocusedElementoggetto .
Lo scenario seguente illustra in che modo lo stato attivo della tastiera e lo stato attivo logico cambiano in un'applicazione WPF con un WindowTextBox oggetto e un con .MenuMenuItem Quando lo stato attivo della tastiera cambia da TextBox a , lo TextBox stato attivo della tastiera perde ma mantiene lo stato attivo logico per l'ambito dello Window stato MenuItemattivo. Ottiene MenuItem lo stato attivo della tastiera e ottiene lo stato attivo logico per l'ambito dello Menu stato attivo. Quando lo stato attivo della tastiera torna alla radice Window, l'elemento nell'ambito Window dello stato attivo con lo stato attivo logico otterrà lo stato attivo della tastiera, che in questo caso è l'oggetto TextBox. Ora TextBox ha lo stato attivo della tastiera e lo stato attivo logico. La MenuItem tastiera perde lo stato attivo, ma mantiene lo stato attivo logico per l'ambito dello Menu stato attivo.
Il valore predefinito di IsFocusScope su un Windowoggetto , , MenuToolBare ContextMenu è true
.
Per altre informazioni sullo stato attivo, vedere Panoramica dell'input e panoramica dello stato attivo.
Campi
FocusedElementProperty |
Identifica la proprietà associata FocusedElement. |
GotFocusEvent |
Identifica l'evento associato GotFocus. |
IsFocusScopeProperty |
Identifica la proprietà associata IsFocusScope. |
LostFocusEvent |
Identifica l'evento associato LostFocus. |
Proprietà associate
FocusedElement |
Determina se l'elemento al quale questa proprietà è associata ha lo stato attivo logico. |
IsFocusScope |
Determina se l'elemento al quale questa proprietà è associata è un ambito dello stato attivo. |
Metodi
AddGotFocusHandler(DependencyObject, RoutedEventHandler) |
Aggiunge un gestore per l'evento associato GotFocus. |
AddLostFocusHandler(DependencyObject, RoutedEventHandler) |
Aggiunge un gestore per l'evento associato LostFocus. |
GetFocusedElement(DependencyObject) |
Ottiene l'elemento con lo stato attivo logico all'interno dell'ambito dello stato attivo specificato. |
GetFocusScope(DependencyObject) |
Determina il predecessore più vicino dell'elemento specificato per cui IsFocusScope è impostato su |
GetIsFocusScope(DependencyObject) |
Determina se l'oggetto DependencyObject specificato è un ambito dello stato attivo. |
RemoveGotFocusHandler(DependencyObject, RoutedEventHandler) |
Rimuove un gestore per l'evento associato GotFocus. |
RemoveLostFocusHandler(DependencyObject, RoutedEventHandler) |
Rimuove un gestore per l'evento associato LostFocus. |
SetFocusedElement(DependencyObject, IInputElement) |
Imposta lo stato attivo logico in relazione all'elemento specificato. |
SetIsFocusScope(DependencyObject, Boolean) |
Imposta l'oggetto DependencyObject specificato come ambito dello stato attivo. |
Eventi associati
GotFocus |
Si verifica quando un elemento riceve lo stato attivo. |
LostFocus |
Si verifica quando un elemento perde lo stato attivo. |