FocusManager Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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 true
festgelegt.
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 true
festgelegt.
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 |
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. |