Condividi tramite


FocusManager Classe

Definizione

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

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.

Si applica a