Aracılığıyla paylaş


FocusManager Sınıf

Tanım

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 trueayarlanmış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 trueayarlanmış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ış truebelirtilen öğenin IsFocusScope en yakın üst öğesini belirler.

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.

Şunlara uygulanır