Share via

Control.FocusEngaged Event


Occurs when focus is constrained within the control boundaries (for game pad/remote interaction).

// Register
event_token FocusEngaged(TypedEventHandler<Control, FocusEngagedEventArgs const&> const& handler) const;

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

// Revoke with event_revoker
Control::FocusEngaged_revoker FocusEngaged(auto_revoke_t, TypedEventHandler<Control, FocusEngagedEventArgs const&> const& handler) const;
public event TypedEventHandler<Control,FocusEngagedEventArgs> FocusEngaged;
function onFocusEngaged(eventArgs) { /* Your code */ }
control.addEventListener("focusengaged", onFocusEngaged);
control.removeEventListener("focusengaged", onFocusEngaged);
- or -
control.onfocusengaged = onFocusEngaged;
Public Custom Event FocusEngaged As TypedEventHandler(Of Control, FocusEngagedEventArgs) 
<control FocusEngaged="eventhandler"/>

Event Type

Windows requirements

Device family
Windows 10 Anniversary Edition (introduced in 10.0.14393.0)
API contract
Windows.Foundation.UniversalApiContract (introduced in v3.0)


For event data, see FocusEngagedEventArgs.

Focus engagement makes it easier to use a game pad or remote control to interact with an app. Setting focus engagement does not affect keyboard or other input devices.

When the IsFocusEngagementEnabled property is set to true, it marks the control as requiring focus engagement. This means that the user must press the A/Select button to "engage" the control and interact with it. When they are finished, they can press the B/Back button to disengage the control and navigate away from it.

For more info about this property, see the Focus engagement section of the Designing for Xbox and TV article.

Version compatibility

The FocusEngaged event is not available prior to Windows 10, version 1607. If your app’s 'minimum platform version' setting in Microsoft Visual Studio is less than the 'introduced version' shown in the Requirements block later in this page, you must design and test your app to account for this. For more info, see Version adaptive code.

To avoid exceptions when your app runs on previous versions of Windows 10, do not connect this event without first performing a runtime check. This example shows how to use the ApiInformation class to check for the presence of this event before you use it.

<Slider x:Name="slider1" Loaded="Slider_Loaded"/>
private void Slider_Loaded(object sender, RoutedEventArgs e)
    if (ApiInformation.IsEventPresent("Windows.UI.Xaml.Controls.Control", "FocusEngaged"))
        slider1.FocusEngaged += Slider1_FocusEngaged;

Applies to