FocusManager Sınıf
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Odak kapsamlarını belirlemek ve ayarlamak ve kapsam içindeki odaklanmış öğeyi ayarlamak için statik yöntemler, ekli özellikler ve olaylar kümesi sağlar.
public ref class FocusManager abstract sealed
public static class FocusManager
type FocusManager = class
Public Class FocusManager
- Devralma
-
FocusManager
Açıklamalar
Windows Presentation Foundation 'de (WPF) odakla ilgili iki kavram vardır: klavye odağı ve mantıksal odak.
Klavye odağı, şu anda klavye girişi alan öğeyle ilgilidir. Klavye odağı olan tek bir öğe olabilir. Klavye odağı olan bu öğe olarak true
ayarlanmıştırIsKeyboardFocused.
Keyboard.FocusedElement klavye odağı olan öğeyi döndürür.
Mantıksal odak, belirli bir odak kapsamı içindeki ile FocusManager.FocusedElement ilgili.
Odak kapsamı, kapsamındaki öğesini FocusManager.FocusedElement izleyen bir kapsayıcı öğesidir. Varsayılan olarak, Window sınıfı , ContextMenuve ToolBar sınıfları gibi bir odak kapsamıdırMenu. Odak kapsamı olan bir öğe olarak true
ayarlanmıştırIsFocusScope.
Mantıksal odağı olan birden çok öğe olabilir, ancak tek bir odak kapsamında mantıksal odağı olan yalnızca bir öğe olabilir. Mantıksal odağı olan bir öğenin klavye odağı olması gerekmez, ancak klavye odağı olan bir öğenin mantıksal odağı olur. Odak kapsamı içinde bir odak kapsamı tanımlamak mümkündür. Bu durumda, hem üst odak kapsamı hem de alt odak kapsamı bir FocusManager.FocusedElementolabilir.
Aşağıdaki senaryo, ile ve içeren bir içeren wpf uygulamasında WindowTextBox klavye odağının ve Menu mantıksal odağın MenuItemnasıl değiştiğini gösterir. Klavye odağı'ndan TextBoxMenuItemöğesine değiştiğinde TextBox , klavye odağı kaybedildiğinde ancak odak kapsamı için Window mantıksal odağı korur. klavye MenuItem odağını alır ve odak kapsamı için Menu mantıksal odağı alır. Klavye odağı köküne Windowdöndüğünde, odak kapsamındaki mantıksal odaklı öğe Window klavye odağını alır ve bu durumda TextBoxda olur. Artık TextBox klavye odağı ve mantıksal odak vardır. Klavye MenuItem odağı kaybolur, ancak odak kapsamı için Menu mantıksal odağı korur.
, , ToolBarMenuve ContextMenu üzerindeki Windowvarsayılan değeri IsFocusScope şeklindedirtrue
.
Odak hakkında daha fazla bilgi için bkz. Girişe Genel Bakış ve Odaklanmaya Genel Bakış.
Alanlar
FocusedElementProperty |
FocusedElement Ekli özelliği tanımlar. |
GotFocusEvent |
Ekli GotFocus olayı tanımlar. |
IsFocusScopeProperty |
IsFocusScope Ekli özelliği tanımlar. |
LostFocusEvent |
Ekli LostFocus olayı tanımlar. |
İliştirilmiş Özellikler
FocusedElement |
Bu özelliğin bağlı olduğu öğenin mantıksal odağa sahip olup olmadığını belirler. |
IsFocusScope |
Bu özelliğin ekli olduğu öğenin bir odak kapsamı olup olmadığını belirler. |
Yöntemler
AddGotFocusHandler(DependencyObject, RoutedEventHandler) |
Ekli olay için GotFocus bir işleyici ekler. |
AddLostFocusHandler(DependencyObject, RoutedEventHandler) |
Ekli olay için LostFocus bir işleyici ekler. |
GetFocusedElement(DependencyObject) |
Belirtilen odak kapsamında mantıksal odağı olan öğesini alır. |
GetFocusScope(DependencyObject) |
olarak ayarlanmış |
GetIsFocusScope(DependencyObject) |
Belirtilenin DependencyObject bir odak kapsamı olup olmadığını belirler. |
RemoveGotFocusHandler(DependencyObject, RoutedEventHandler) |
Ekli olay için GotFocus bir işleyici kaldırır. |
RemoveLostFocusHandler(DependencyObject, RoutedEventHandler) |
Ekli olay için LostFocus bir işleyici kaldırır. |
SetFocusedElement(DependencyObject, IInputElement) |
Mantıksal odağı belirtilen öğeye ayarlar. |
SetIsFocusScope(DependencyObject, Boolean) |
Belirtilen DependencyObject öğesini odak kapsamı olarak ayarlar. |
İliştirilmiş Olaylar
GotFocus |
Bir öğe odak aldığında gerçekleşir. |
LostFocus |
Bir öğe odağı kaybettiğinde gerçekleşir. |