UIElement.KeyDown 事件

定义

UIElement 具有焦点时按下键盘键时发生。

public:
 virtual event KeyEventHandler ^ KeyDown;
// Register
event_token KeyDown(KeyEventHandler const& handler) const;

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

// Revoke with event_revoker
UIElement::KeyDown_revoker KeyDown(auto_revoke_t, KeyEventHandler const& handler) const;
public event KeyEventHandler KeyDown;
function onKeyDown(eventArgs) { /* Your code */ }
uIElement.addEventListener("keydown", onKeyDown);
uIElement.removeEventListener("keydown", onKeyDown);
- or -
uIElement.onkeydown = onKeyDown;
Public Custom Event KeyDown As KeyEventHandler 
<uiElement KeyDown="eventhandler"/>

事件类型

注解

UI 中的控件仅在具有输入焦点时才会生成键盘事件。 默认情况下,可视化树中的第一个可聚焦元素由系统提供焦点。 当用户直接单击或点击布局中的一个控件时该控件获得焦点,或者使用 Tab 键进入内容区域内的 Tab 序列。 还可以通过调用 Control.Focus 以编程方式聚焦控件。

KeyDown 是路由事件。 有关路由事件概念的详细信息,请参阅 事件和路由事件概述

KeyDown 使用 KeyRoutedEventArgs 事件数据。 对于大多数处理程序方案而言,KeyRoutedEventArgs 的最为相关的属性是 Key,并且可能为 KeyStatus。 有关处理键盘事件的详细信息,包括用于定义 KeyEventHandler 方法的示例代码,请参阅 键盘交互

处理键盘事件的一种方案是支持应用或应用内的区域或控件的访问键或快捷键。 有关此方案的详细信息,请参阅 键盘辅助功能

对于 KeyDown 输入事件,特定Windows 运行时控件可能具有基于类的处理。 如果是这样,控件可能具有 OnKeyDown 方法的替代。 通常,这些类处理程序旨在处理一部分按键,这些按键可实现基于键盘的用户与该控件的交互,并且此交互通常支持键盘辅助功能。 如果按键由基于类的处理处理处理,则将按键视为已处理,并且不会引发 KeyDown 事件,由该控件上的任何用户代码处理程序专门处理该键。 通常,这仅适用于几个专用密钥。 例如, ButtonBase 具有类处理,以便空格键和 Enter 键作为键盘等效项进行处理,以便调用 Button。 这提供了一个等效的内置键盘,用于点击按钮或使用鼠标单击它,并启用仅使用键盘使用 UI 和按钮的辅助功能方案。 但是,除空格键或 Enter 以外的任何其他键仍将为 Button 触发 KeyDown 和 KeyUp 事件。 有关事件基于类的处理工作原理的详细信息,请参阅 事件和路由事件概述

KeyDown 支持将事件处理程序附加到将调用的路由,即使事件的事件数据标记为“ 已处理”也是如此。 请参阅 AddHandler

适用于

另请参阅