Teilen über


FocusManager Klasse

Definition

Stellt eine Reihe statischer Methoden sowie angefügte Eigenschaften und Ereignisse bereit, um Fokusbereiche zu ermitteln und festzulegen und das fokussierte Element innerhalb des Bereichs festzulegen.

public ref class FocusManager abstract sealed
public static class FocusManager
type FocusManager = class
Public Class FocusManager
Vererbung
FocusManager

Hinweise

In Windows Presentation Foundation (WPF) gibt es zwei Konzepte für den Fokus: Tastaturfokus und logischer Fokus.

Der Tastaturfokus bezieht sich auf das Element, das derzeit Tastatureingaben empfängt. Es kann nur ein Element mit Tastaturfokus vorhanden sein. Dieses Element mit Tastaturfokus ist IsKeyboardFocused auf truefestgelegt. Keyboard.FocusedElement gibt das Element mit Tastaturfokus zurück.

Der logische Fokus bezieht sich auf den FocusManager.FocusedElement innerhalb eines bestimmten Fokusbereichs.

Ein Fokusbereich ist ein Containerelement, das das FocusManager.FocusedElement innerhalb seines Bereichs nachverfolgt. Standardmäßig ist die Window Klasse ein Fokusbereich wie die MenuKlassen , ContextMenuund ToolBar . Ein Element, das ein Fokusbereich ist, ist IsFocusScope auf truefestgelegt.

Es kann mehrere Elemente mit logischem Fokus geben, aber es kann nur ein Element mit logischem Fokus innerhalb eines einzelnen Fokusbereichs vorhanden sein. Ein Element mit logischem Fokus hat nicht unbedingt den Tastaturfokus, aber ein Element mit Tastaturfokus hat den logischen Fokus. Es ist möglich, einen Fokusbereich innerhalb eines Fokusbereichs zu definieren. In diesem Fall kann sowohl der übergeordnete Fokusbereich als auch der untergeordnete Fokusbereich über einen FocusManager.FocusedElementverfügen.

Im folgenden Szenario wird veranschaulicht, wie sich der Tastaturfokus und der logische Fokus in einer WPF-Anwendung ändern, die über ein WindowTextBox und ein Menu verfügt, das über ein MenuItemverfügt. Wenn sich der Tastaturfokus von zu TextBoxMenuItemändert, wird der TextBox Tastaturfokus verloren, behält jedoch den logischen Fokus für den Window Fokusbereich bei. Der MenuItem erhält den Tastaturfokus und erhält den logischen Fokus für den Menu Fokusbereich. Wenn der Tastaturfokus zum Stamm Windowzurückkehrt, erhält das Element im Window Fokusbereich mit logischem Fokus den Tastaturfokus, der in diesem Fall der TextBoxist. Der TextBox hat jetzt den Tastaturfokus und den logischen Fokus. Der MenuItem Tastaturfokus verliert, behält aber den logischen Fokus für den Menu Fokusbereich bei.

Der Standardwert von IsFocusScope für ein Window, Menu, ToolBar, und ContextMenu ist true.

Weitere Informationen zum Fokus finden Sie in der Eingabeübersicht und in der Übersicht über den Fokus.

Felder

FocusedElementProperty

Bezeichnet die angefügte FocusedElement-Eigenschaft.

GotFocusEvent

Bezeichnet das angefügte GotFocus-Ereignis.

IsFocusScopeProperty

Bezeichnet die angefügte IsFocusScope-Eigenschaft.

LostFocusEvent

Bezeichnet das angefügte LostFocus-Ereignis.

Angefügte Eigenschaften

FocusedElement

Ermittelt, ob das Element, an das diese Eigenschaft angefügt ist, über den logischen Fokus verfügt.

IsFocusScope

Ermittelt, ob das Element, an das diese Eigenschaft angefügt ist, einen Fokusbereich darstellt.

Methoden

AddGotFocusHandler(DependencyObject, RoutedEventHandler)

Fügt einen Handler für das angefügte GotFocus-Ereignis hinzu.

AddLostFocusHandler(DependencyObject, RoutedEventHandler)

Fügt einen Handler für das angefügte LostFocus-Ereignis hinzu.

GetFocusedElement(DependencyObject)

Ruft das Element mit dem logischem Fokus im angegebenen Fokusbereich ab.

GetFocusScope(DependencyObject)

Ermittelt den nächsten Vorgänger des angegebenen Elements, dessen IsFocusScope auf true festgelegt ist.

GetIsFocusScope(DependencyObject)

Ermittelt, ob das angegebene DependencyObject ein Fokusbereich ist.

RemoveGotFocusHandler(DependencyObject, RoutedEventHandler)

Entfernt einen Handler für das angefügte GotFocus-Ereignis.

RemoveLostFocusHandler(DependencyObject, RoutedEventHandler)

Entfernt einen Handler für das angefügte LostFocus-Ereignis.

SetFocusedElement(DependencyObject, IInputElement)

Legt den logischen Fokus für das angegebene Element fest.

SetIsFocusScope(DependencyObject, Boolean)

Legt das angegebene DependencyObject als Fokusbereich fest.

Angefügte Ereignisse

GotFocus

Tritt ein, wenn ein Element den Fokus erhält.

LostFocus

Tritt auf, wenn ein Element den Fokus verliert.

Gilt für: