FocusManager.GotFocus Event


Occurs when an element within a container element (a focus scope) receives focus. This event is raised asynchronously, so focus might move before bubbling is complete.

Equivalent WinUI event: Microsoft.UI.Xaml.Input.FocusManager.GotFocus.

// Register
static event_token GotFocus(EventHandler<FocusManagerGotFocusEventArgs> const& handler) const;

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

// Revoke with event_revoker
static FocusManager::GotFocus_revoker GotFocus(auto_revoke_t, EventHandler<FocusManagerGotFocusEventArgs> const& handler) const;
public static event System.EventHandler<FocusManagerGotFocusEventArgs> GotFocus;
function onGotFocus(eventArgs) { /* Your code */ }
Windows.UI.Xaml.Input.FocusManager.addEventListener("gotfocus", onGotFocus);
Windows.UI.Xaml.Input.FocusManager.removeEventListener("gotfocus", onGotFocus);
- or -
Windows.UI.Xaml.Input.FocusManager.ongotfocus = onGotFocus;
Public Shared Custom Event GotFocus As EventHandler(Of FocusManagerGotFocusEventArgs) 

Event Type



Windows 10 requirements

Device family
Windows 10, version 1809 (introduced in 10.0.17763.0)
API contract
Windows.Foundation.UniversalApiContract (introduced in v7.0)


We recommend using the UIElement focus routed events instead of FocusManager events whenever possible.

UIElement focus events bubble up to the FocusManager in the following order:

  1. UIElement.LosingFocus /@"Windows.UI.Xaml.Input.FocusManager.LosingFocus?text=FocusManager.LosingFocus"
  2. UIElement.GettingFocus /@"Windows.UI.Xaml.Input.FocusManager.GettingFocus?text=FocusManager.GettingFocus"
  3. UIElement.LostFocus routed event is raised by the element that lost focus and the event bubbles up
  4. FocusManager.LostFocus is raised (even if the routed event is marked handled)
  5. UIElement.GotFocus routed event is raised by the element that received focus and the event bubbles up
  6. FocusManager.GotFocus is raised (even if the routed event is marked handled)

Applies to

See also