FocusManager Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Udostępnia zestaw metod statycznych, dołączonych właściwości i zdarzeń do określania i ustawiania zakresów fokusu oraz ustawiania elementu ukierunkowanego w zakresie.
public ref class FocusManager abstract sealed
public static class FocusManager
type FocusManager = class
Public Class FocusManager
- Dziedziczenie
-
FocusManager
Uwagi
W Windows Presentation Foundation (WPF) istnieją dwie koncepcje dotyczące koncentracji uwagi: fokus klawiatury i fokus logiczny.
Fokus klawiatury odnosi się do elementu, który obecnie odbiera dane wejściowe klawiatury. Może istnieć tylko jeden element z fokusem klawiatury. Ten element z fokusem klawiatury ma IsKeyboardFocused ustawioną wartość true
.
Keyboard.FocusedElement Zwraca element z fokusem klawiatury.
Fokus logiczny odnosi się do FocusManager.FocusedElement określonego zakresu fokusu.
Zakres fokusu to element kontenera, który śledzi FocusManager.FocusedElement zakres w jego zakresie. Domyślnie Window klasa jest zakresem fokusu Menu, podobnie jak klasy , ContextMenui ToolBar . Element, który jest zakresem fokusu, ma IsFocusScope ustawioną wartość true
.
Może istnieć wiele elementów z fokusem logicznym, ale w jednym zakresie fokusu może znajdować się tylko jeden element z fokusem logicznym. Element z fokusem logicznym nie musi mieć fokusu klawiatury, ale element z fokusem klawiatury będzie miał fokus logiczny. Istnieje możliwość zdefiniowania zakresu fokusu w zakresie fokusu. W takim przypadku zarówno zakres fokusu nadrzędnego, jak i zakres fokusu podrzędnego mogą mieć FocusManager.FocusedElementwartość .
W poniższym scenariuszu pokazano, w jaki sposób fokus klawiatury i logiczna zmiana fokusu w aplikacji WPF, która ma Window element z elementem TextBox i z elementem MenuMenuItem. Gdy fokus klawiatury zmienia się z TextBox na MenuItem, straty fokus klawiatury, TextBox ale zachowuje fokus logiczny dla zakresu fokusu Window . Funkcja MenuItem uzyskuje fokus klawiatury i uzyskuje fokus logiczny dla zakresu fokusu Menu . Gdy fokus klawiatury powróci do katalogu głównego Window, element w Window zakresie fokusu z fokusem logicznym uzyska fokus klawiatury, co w tym przypadku jest TextBox. Teraz TextBox ma fokus klawiatury i fokus logiczny. Funkcja MenuItem traci fokus klawiatury, ale zachowuje fokus logiczny dla zakresu fokusu Menu .
Wartość domyślna IsFocusScope dla wartości Window, , MenuToolBari ContextMenu to true
.
Aby uzyskać więcej informacji na temat fokusu, zobacz Omówienie danych wejściowych i Omówienie fokusu.
Pola
FocusedElementProperty |
Identyfikuje dołączoną FocusedElement właściwość. |
GotFocusEvent |
GotFocus Identyfikuje dołączone zdarzenie. |
IsFocusScopeProperty |
Identyfikuje dołączoną IsFocusScope właściwość. |
LostFocusEvent |
LostFocus Identyfikuje dołączone zdarzenie. |
Właściwości dołączone
FocusedElement |
Określa, czy element, do których jest dołączona ta właściwość, ma fokus logiczny. |
IsFocusScope |
Określa, czy element, do których jest dołączona ta właściwość, jest zakresem fokusu. |
Metody
AddGotFocusHandler(DependencyObject, RoutedEventHandler) |
Dodaje procedurę obsługi dla dołączonego GotFocus zdarzenia. |
AddLostFocusHandler(DependencyObject, RoutedEventHandler) |
Dodaje procedurę obsługi dla dołączonego LostFocus zdarzenia. |
GetFocusedElement(DependencyObject) |
Pobiera element z fokusem logicznym w określonym zakresie fokusu. |
GetFocusScope(DependencyObject) |
Określa najbliższy element nadrzędny określonego elementu, który ma IsFocusScope ustawioną wartość |
GetIsFocusScope(DependencyObject) |
Określa, czy określony DependencyObject zakres jest zakresem fokusu. |
RemoveGotFocusHandler(DependencyObject, RoutedEventHandler) |
Usuwa procedurę obsługi dołączonego GotFocus zdarzenia. |
RemoveLostFocusHandler(DependencyObject, RoutedEventHandler) |
Usuwa procedurę obsługi dołączonego LostFocus zdarzenia. |
SetFocusedElement(DependencyObject, IInputElement) |
Ustawia fokus logiczny dla określonego elementu. |
SetIsFocusScope(DependencyObject, Boolean) |
Ustawia określony DependencyObject jako zakres fokusu. |
Zdarzenia dołączone
GotFocus |
Występuje, gdy element staje się fokusem. |
LostFocus |
Występuje, gdy element traci fokus. |