FocusManager Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Poskytuje sadu statických metod, připojených vlastností a událostí pro určení a nastavení oborů fokusu a pro nastavení prioritního prvku v rámci oboru.
public ref class FocusManager abstract sealed
public static class FocusManager
type FocusManager = class
Public Class FocusManager
- Dědičnost
-
FocusManager
Poznámky
V Windows Presentation Foundation (WPF) existují dva koncepty týkající se fokusu: fokus klávesnice a logický fokus.
Fokus klávesnice se týká prvku, který právě přijímá vstup z klávesnice. Fokus klávesnice může obsahovat jenom jeden prvek. Tento prvek s fokusem klávesnice je IsKeyboardFocused nastavený na true
.
Keyboard.FocusedElement vrátí prvek s fokusem klávesnice.
Logický fokus se týká rozsahu konkrétního fokusu FocusManager.FocusedElement .
Obor fokusu je prvek kontejneru, který sleduje FocusManager.FocusedElement jeho rozsah. Ve výchozím nastavení Window je třída oborem fokusu Menu, stejně jako třídy , ContextMenua ToolBar . Prvek, který je oborem fokusu, je IsFocusScope nastavený na true
.
Může existovat více prvků s logickým fokusem, ale v jednom oboru fokusu může být jenom jeden prvek s logickým fokusem. Prvek s logickým fokusem nemusí nutně mít fokus klávesnice, ale prvek s fokusem klávesnice bude mít logický fokus. Rozsah fokusu je možné definovat v rámci oboru fokusu. V tomto případě může mít nadřazený obor fokusu i podřízený obor fokusu FocusManager.FocusedElement.
Následující scénář ukazuje, jak se mění fokus klávesnice a logické fokus v aplikaci WPF, která má Window a MenuTextBox a má MenuItem. Když se fokus klávesnice změní z hodnoty TextBox na MenuItem, TextBox fokus klávesnice se změní, ale pro obor fokusu si zachová logický fokus Window . Získá MenuItem fokus klávesnice a získá logický fokus pro obor fokusu Menu . Když se fokus klávesnice vrátí do kořenového adresáře Window, získá prvek v Window oboru fokusu s logickým fokusem klávesnice, což je TextBoxv tomto případě . Teď je TextBox fokus klávesnice a logický fokus. Nástroj MenuItem ztratí fokus klávesnice, ale pro obor fokusu si zachová logický fokus Menu .
Výchozí hodnota pro IsFocusScopeWindow, Menu, ToolBara ContextMenu je true
.
Další informace o fokusu najdete v tématu Přehled vstupu a Přehled fokusu.
Pole
FocusedElementProperty |
Identifikuje připojenou FocusedElement vlastnost. |
GotFocusEvent |
Identifikuje připojenou GotFocus událost. |
IsFocusScopeProperty |
Identifikuje připojenou IsFocusScope vlastnost. |
LostFocusEvent |
Identifikuje připojenou LostFocus událost. |
Přidružené vlastnosti
FocusedElement |
Určuje, zda má prvek, ke kterému je tato vlastnost připojena, logický fokus. |
IsFocusScope |
Určuje, zda je prvek, ke kterému je tato vlastnost připojena, oborem fokusu. |
Metody
AddGotFocusHandler(DependencyObject, RoutedEventHandler) |
Přidá obslužnou rutinu pro připojenou GotFocus událost. |
AddLostFocusHandler(DependencyObject, RoutedEventHandler) |
Přidá obslužnou rutinu pro připojenou LostFocus událost. |
GetFocusedElement(DependencyObject) |
Získá element s logickým fokusem v zadaném oboru fokusu. |
GetFocusScope(DependencyObject) |
Určuje nejbližší nadřazený prvek zadaného prvku, který má IsFocusScope nastavenou hodnotu |
GetIsFocusScope(DependencyObject) |
Určuje, zda je zadaný DependencyObject obor fokusu. |
RemoveGotFocusHandler(DependencyObject, RoutedEventHandler) |
Odebere obslužnou rutinu pro připojenou GotFocus událost. |
RemoveLostFocusHandler(DependencyObject, RoutedEventHandler) |
Odebere obslužnou rutinu pro připojenou LostFocus událost. |
SetFocusedElement(DependencyObject, IInputElement) |
Nastaví logický fokus na zadaný prvek. |
SetIsFocusScope(DependencyObject, Boolean) |
Nastaví zadanou DependencyObject hodnotu jako obor fokusu. |
Přidružené události
GotFocus |
Nastane, když prvek získá fokus. |
LostFocus |
Nastane, když prvek ztratí fokus. |