KeyBinding 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
将 KeyGesture 绑定到 RoutedCommand(或另一个 ICommand 实现)。
public ref class KeyBinding : System::Windows::Input::InputBinding
public class KeyBinding : System.Windows.Input.InputBinding
type KeyBinding = class
inherit InputBinding
Public Class KeyBinding
Inherits InputBinding
- 继承
- 继承
示例
以下示例创建 并将其 KeyBinding 添加到 InputBindingCollection 根窗口的 。
<Window.InputBindings>
<KeyBinding Command="ApplicationCommands.Open"
Gesture="CTRL+R" />
</Window.InputBindings>
// Creating a KeyBinding between the Open command and Ctrl-R
KeyBinding OpenCmdKeyBinding = new KeyBinding(
ApplicationCommands.Open,
Key.R,
ModifierKeys.Control);
this.InputBindings.Add(OpenCmdKeyBinding);
' Creating a KeyBinding between the Open command and Ctrl-R
Dim OpenCmdKeyBinding As New KeyBinding(ApplicationCommands.Open, Key.R, ModifierKeys.Control)
Me.InputBindings.Add(OpenCmdKeyBinding)
注解
将 KeyBinding 与 ICommand(如 RoutedCommand)相关联KeyGesture。 RoutedCommand 是 WPF 命令系统 的 接口的主要实现 ICommand 。 通常,在执行 时 KeyGesture 会调用 命令,但命令行为会进一步受到特定于命令的因素(如 CanExecute 值)的影响。 有关命令的详细信息,请参阅命令概述。
除了功能键和数字键盘键之外, 有效的 KeyGesture 必须正好包含一 Key 个和一个或多个 ModifierKeys。 功能键和数字键盘键不需要修饰键即可成为有效的 KeyGesture。 可以通过 XAML 或代码指定无效 KeyGesture 的 和 KeyBinding 具有无效关联手势的 。 例如,没有验证阻止创建和绑定 KeyGesture 仅包含非功能键或仅包含修饰符但不包含键的 。 KeyBinding此类 永远不会尝试调用其关联的命令。
KeyBinding在 EXTENSIble Application Markup Language (XAML) 定义 时,有两种方法可以指定 KeyGesture。 在 XAML 中建立 的第一 KeyBinding 种方法是定义 Gesture 元素的 KeyBinding 属性,这允许语法将键和修饰符指定为单个字符串,例如“CTRL+P”。 第二种方法是定义 元素的属性 Key 和 Modifiers 属性 KeyBinding 。 设置 KeyGesture 的两种方法都是等效的,并修改同一个基础对象,但如果同时使用这两种方法,则会出现冲突。 在全部设置 、 和 属性的情况下Key,最后定义的 属性将用于 KeyGesture。GestureModifiers 在某些情况下,例如,最后一组 Key 将仅覆盖前一个手势的键组件,但使手势的修饰符保持不变。 通常,建议仅使用 XAML 中的 Gesture 属性;这将避免歧义,提供最简化的语法,并为序列化提供最直接的表示形式。
KeyBinding可以通过在类上注册 来在特定对象上定义,也可以在类级别定义 RegisterClassInputBindingCommandManager 。 定义 KeyBinding 的最典型方法是在控件模板中,通过声明一个或多个 MouseBinding 或 KeyBinding 元素在 XAML 中设置 InputBindings 属性。
构造函数
KeyBinding() |
初始化 KeyBinding 类的新实例。 |
KeyBinding(ICommand, Key, ModifierKeys) |
使用指定的 KeyBinding 以及将要转换为 ICommand 的指定的 Key 和 ModifierKeys 初始化 KeyGesture 类的新实例。 |
KeyBinding(ICommand, KeyGesture) |
使用指定的 KeyBinding 和 ICommand 初始化 KeyGesture 类的新实例。 |
字段
KeyProperty |
标识 Key 依赖项属性。 |
ModifiersProperty |
标识 Modifiers 依赖项属性。 |
属性
CanFreeze |
获取一个值,该值指示是否可将对象变为不可修改。 (继承自 Freezable) |
Command |
获取或设置与此输入绑定关联的 ICommand。 (继承自 InputBinding) |
CommandParameter |
获取或设置特定命令的命令特定数据。 (继承自 InputBinding) |
CommandTarget |
获取或设置命令的目标元素。 (继承自 InputBinding) |
DependencyObjectType |
获取 DependencyObjectType 包装此实例的 CLR 类型的 。 (继承自 DependencyObject) |
Dispatcher |
获取与此 Dispatcher 关联的 DispatcherObject。 (继承自 DispatcherObject) |
Gesture |
获取或设置与此 KeyBinding 关联的笔势。 |
IsFrozen |
获取一个值,该值指示对象当前是否可修改。 (继承自 Freezable) |
IsSealed |
获取一个值,该值指示此实例当前是否为密封的(只读)。 (继承自 DependencyObject) |
Key |
获取或设置与此 Key 关联的 KeyGesture 的 KeyBinding。 |
Modifiers |
获取或设置与此 ModifierKeys 关联的 KeyGesture 的 KeyBinding。 |
方法
事件
Changed |
在修改 Freezable 或其包含的对象时发生。 (继承自 Freezable) |