FocusManager 類別

定義

提供一組靜態方法、附加屬性和事件,以判斷並設定焦點範圍,並在範圍內設定可焦點化的項目。

public ref class FocusManager abstract sealed
public static class FocusManager
type FocusManager = class
Public Class FocusManager
繼承
FocusManager

備註

在 Windows Presentation Foundation (WPF) 有兩個關於焦點的概念:鍵盤焦點和邏輯焦點。

鍵盤焦點與目前接收鍵盤輸入的項目有關。 鍵盤焦點只能有一個專案。 具有鍵盤焦點的這個項目已 IsKeyboardFocused 設定為 trueKeyboard.FocusedElement 會傳回具有鍵盤焦點的專案。

邏輯焦點與 FocusManager.FocusedElement 特定焦點範圍內的 有關。

焦點範圍是一個容器元素,可追蹤其範圍內。FocusManager.FocusedElement 根據預設,類別 Window 是焦點範圍,如同 MenuContextMenuToolBar 類別。 焦點範圍的項目已 IsFocusScope 設定為 true

邏輯焦點可以有多個元素,但單一焦點範圍內只能有一個具有邏輯焦點的專案。 具有邏輯焦點的專案不一定具有鍵盤焦點,但具有鍵盤焦點的專案會有邏輯焦點。 可以在焦點範圍內定義焦點範圍。 在此情況下,父焦點範圍和子焦點範圍都可以有 FocusManager.FocusedElement

下列案例說明 WPF 應用程式中具有 的 WindowTextBox 鍵盤焦點和邏輯焦點如何變更,以及 Menu 具有 MenuItem的 。 當鍵盤焦點從 TextBox 變更為 MenuItem時,會 TextBox 失去鍵盤焦點,但會保留焦點範圍的邏輯焦點 Window 。 會 MenuItem 取得鍵盤焦點,並取得焦點範圍的邏輯焦點 Menu 。 當鍵盤焦點回到根 Window目錄時,具有邏輯焦點的焦點範圍中的 Window 元素會取得鍵盤焦點,在此案例中為 TextBoxTextBox現在具有鍵盤焦點和邏輯焦點。 會 MenuItem 失去鍵盤焦點,但會保留焦點範圍的邏輯焦點 Menu

ToolBarMenuContextMenu 預設WindowIsFocusScopetrue

如需焦點的詳細資訊,請參閱 輸入概觀焦點概觀

欄位

FocusedElementProperty

識別 FocusedElement 附加屬性。

GotFocusEvent

識別 GotFocus 附加事件。

IsFocusScopeProperty

識別 IsFocusScope 附加屬性。

LostFocusEvent

識別 LostFocus 附加事件。

附加屬性

FocusedElement

判斷附加這個屬性的項目是否擁有邏輯焦點。

IsFocusScope

判斷附加這個屬性的項目是否為焦點範圍。

方法

AddGotFocusHandler(DependencyObject, RoutedEventHandler)

加入 GotFocus 附加事件的處理常式。

AddLostFocusHandler(DependencyObject, RoutedEventHandler)

加入 LostFocus 附加事件的處理常式。

GetFocusedElement(DependencyObject)

取得指定焦點範圍內擁有邏輯焦點的項目。

GetFocusScope(DependencyObject)

判斷指定的項目之最接近的祖系,這個項目會將 IsFocusScope 設定為 true

GetIsFocusScope(DependencyObject)

判斷指定的 DependencyObject 是否為焦點範圍。

RemoveGotFocusHandler(DependencyObject, RoutedEventHandler)

移除 GotFocus 附加事件的處理常式。

RemoveLostFocusHandler(DependencyObject, RoutedEventHandler)

移除 LostFocus 附加事件的處理常式。

SetFocusedElement(DependencyObject, IInputElement)

在指定項目上設定邏輯焦點。

SetIsFocusScope(DependencyObject, Boolean)

將指定的 DependencyObject 設定為焦點範圍。

附加事件

GotFocus

當項目取得焦點時發生。

LostFocus

在項目失去焦點時發生。

適用於