UIElement.GotFocus 事件

定義

發生于 UIElement 收到焦點時。 這個事件會以非同步方式引發,因此焦點可以在反升完成之前再次移動。

// Register
event_token GotFocus(RoutedEventHandler const& handler) const;

// Revoke with event_token
void GotFocus(event_token const* cookie) const;

// Revoke with event_revoker
UIElement::GotFocus_revoker GotFocus(auto_revoke_t, RoutedEventHandler const& handler) const;
public event RoutedEventHandler GotFocus;
function onGotFocus(eventArgs) { /* Your code */ }
uIElement.addEventListener("gotfocus", onGotFocus);
uIElement.removeEventListener("gotfocus", onGotFocus);
- or -
uIElement.ongotfocus = onGotFocus;
Public Custom Event GotFocus As RoutedEventHandler 
<uiElement GotFocus="eventhandler"/>

事件類型

備註

建議您盡可能使用 UIElement 焦點路由事件,而不是 FocusManager 事件。

一次只能有單一 UI 元素的焦點。

當另一個控制項失去焦點、應用程式檢視變更、使用者切換應用程式或使用者與系統互動時,控制項可以取得焦點,讓應用程式不再位於前景。

LostFocus 會在 之前 GotFocus 引發。

如果您要在PanelGridView之類的容器上使用控制群組合或 UI 撰寫和處理 GotFocus ,請檢查事件資料上的OriginalSource,以判斷組合中的哪個元素收到焦點。

GotFocus由於事件沒有任何特製化事件資料,因此您可以檢查UIElement.FocusState屬性,以判斷它是否為造成元素取得焦點的使用者或應用程式程式碼。

private void panel_GotFocus(object sender, RoutedEventArgs e)
{
    UIElement uie = e.OriginalSource as UIElement;
    FocusState fc = uie.FocusState;
}

鍵盤焦點與鍵盤事件處理特別相關,因為只有目前以鍵盤為主的 UIElement 可以是 KeyUpKeyDown 按鍵事件的來源。 應用程式可能會 呼叫 UIElement.Focus (Microsoft.UI.Xaml.FocusState) 做為初始化動作,以便整個應用程式中的索引鍵事件可用來偵測存取或快速鍵。 如需詳細資訊,請參閱鍵盤互動

GotFocus 是路由事件。 如需路由事件概念的詳細資訊,請參閱 事件和路由事件概觀

特定Windows 執行階段控制項可能有事件的類別型處理 GotFocus 。 如果是,控制項可能具有 OnGotFocus方法的覆寫。 一般而言,事件會標示為由類別處理常式處理,而且不會引發 GotFocus 事件,以供該控制項上的任何使用者程式碼處理常式處理。 控制項可能會處理 事件,以載入顯示焦點矩形的視覺狀態屬性。

控制項的焦點矩形是一個重要視覺元件,可藉由識別目前的焦點元素,並指出使用者位於應用程式 UI 的索引標籤序列中的位置,來輔助輔助協助工具。 在某些情況下,焦點動作的 FocusState 是否應該顯示可見焦點指標。

如需事件類別型處理運作方式的詳細資訊,請參閱 事件和路由事件概觀。 如需索引標籤序列和協助工具的詳細資訊,請參閱 鍵盤協助工具

適用於

另請參閱