UIElement.GotFocus 事件
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
// 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
引发。
如果在 Panel 或 GridView 等容器上使用控件合成或 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 才能成为 KeyUp 和 KeyDown 键事件的源。 应用程序可能会调用 UIElement.Focus (Microsoft.UI.Xaml.FocusState) 作为初始化操作,以便整个应用中的关键事件可用于检测访问或加速键。 有关详细信息,请参阅键盘交互。
GotFocus
是路由事件。 有关路由事件概念的详细信息,请参阅 事件和路由事件概述。
特定Windows 运行时控件可能对事件具有基于类的GotFocus
处理。 如果是这样,控件可能具有 OnGotFocus 方法的替代。 通常,事件标记为由类处理程序处理,并且不会引发 GotFocus 事件,以便由该控件上的任何用户代码处理程序进行处理。 控件可能会处理 事件,以加载显示焦点矩形的视觉状态属性。
控件的焦点矩形是一个重要的视觉组件,它通过标识当前焦点元素并指示用户在应用程序 UI 的选项卡序列中的位置,帮助辅助功能。 在某些情况下,焦点操作的 FocusState 与是否应显示可见焦点指示器相关。
有关事件基于类的处理工作原理的详细信息,请参阅 事件和路由事件概述。 有关选项卡序列和辅助功能的详细信息,请参阅 键盘辅助功能。