KeyBinding 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
将 a 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将 a KeyGesture 与 aICommand(如 aRoutedCommand)相关联。 RoutedCommand 是 WPF 命令系统的接口的主要实现 ICommand 。 一般情况下,执行命令时 KeyGesture 调用命令,尽管命令行为受命令特定因素(如 CanExecute 值)的影响。 有关命令的详细信息,请参阅 命令概述。
除了函数键和数字键盘键之外,有效 KeyGesture 必须正好包含一 Key 个或多个 ModifierKeys。 函数键和数字键盘键不需要修饰键才能有效 KeyGesture。 可以通过 XAML 或代码指定无效 KeyGesture 的关联手势和 KeyBinding 无效的手势。 例如,没有验证会阻止创建和绑定 KeyGesture 仅包含非功能键或仅修饰符但不包含键的验证。 KeyBinding此类永远不会尝试调用其关联的命令。
在 KeyBinding 可扩展应用程序标记语言(XAML)中定义时,有两种方法可以指定 KeyGesture。 在 XAML 中建立的第一 KeyBinding 种方法是定义 Gesture 元素的属性 KeyBinding ,该属性使语法能够将键和修饰符指定为单个字符串,例如“CTRL+P”。 第二种方法是定义 Key 元素的属性和 Modifiers 属性 KeyBinding 。 设置这 KeyGesture 两种方法都是等效的,并修改相同的基础对象,但如果同时使用这两种方法,将发生冲突。 在设置属性KeyModifiers和Gesture属性时,最后定义的属性将用于该KeyGesture属性。 在某些情况下,例如,最后一 Key 组将只覆盖上一个手势的关键组件,但保留手势的修饰符相同。 一般情况下,建议仅 Gesture 使用 XAML 中的属性;这将避免歧义,提供最简化的语法,并提供最直接的序列化表示形式。
可以在特定对象上或通过在类级别注册 A 来定义 A KeyBindingRegisterClassInputBindingCommandManager 。 定义 a KeyBinding 的最典型方法是在控件模板中,通过声明一个或多个MouseBinding元素KeyBinding在 XAML 中设置InputBindings属性。
构造函数
| 名称 | 说明 |
|---|---|
| KeyBinding() |
初始化 KeyBinding 类的新实例。 |
| KeyBinding(ICommand, Key, ModifierKeys) |
使用指定的和指定的ICommandKey实例初始化类的新实例,该ModifierKeys实例KeyBinding将转换为一个 KeyGesture。 |
| KeyBinding(ICommand, KeyGesture) |
使用指定的ICommand和 KeyGesture. 初始化类的新实例KeyBinding。 |
字段
| 名称 | 说明 |
|---|---|
| KeyProperty |
标识 Key 依赖属性。 |
| ModifiersProperty |
标识 Modifiers 依赖属性。 |
属性
| 名称 | 说明 |
|---|---|
| CanFreeze |
获取一个值,该值指示是否可以使对象不可修改。 (继承自 Freezable) |
| Command |
获取或设置 ICommand 与此输入绑定关联的项。 (继承自 InputBinding) |
| CommandParameter |
获取或设置特定命令的特定于命令的数据。 (继承自 InputBinding) |
| CommandTarget |
获取或设置命令的目标元素。 (继承自 InputBinding) |
| DependencyObjectType |
获取包装 DependencyObjectType 此实例的 CLR 类型。 (继承自 DependencyObject) |
| Dispatcher |
获取与此DispatcherDispatcherObject关联的值。 (继承自 DispatcherObject) |
| Gesture |
获取或设置与此关联的 KeyBinding手势。 |
| IsFrozen |
获取一个值,该值指示对象当前是否可修改。 (继承自 Freezable) |
| IsSealed |
获取一个值,该值指示此实例当前是否密封(只读)。 (继承自 DependencyObject) |
| Key |
获取或设置Key与此KeyBinding关联的项KeyGesture。 |
| Modifiers |
获取或设置ModifierKeys与此KeyBinding关联的项KeyGesture。 |
方法
活动
| 名称 | 说明 |
|---|---|
| Changed |
修改它包含的对象时 Freezable 发生。 (继承自 Freezable) |