用途:在 WPF 应用中处理用户输入并实现命令模式,覆盖键盘快捷键、菜单命令、鼠标交互与焦点管理。
主要能力:
- 命令系统:ICommand 接口、WPF 内置 RoutedCommand(ApplicationCommands、NavigationCommands、MediaCommands、EditingCommands)以及 MVVM 常用的 RelayCommand/DelegateCommand。
- 内置命令:通过 CommandBinding 绑定 Executed 与 CanExecute,例如 ApplicationCommands.Copy、Paste、Undo、Redo。
- 自定义 RoutedCommand:用 InputGestureCollection 定义 KeyGesture,如 F5、Ctrl+R、Ctrl+Shift+E、F11,并在 XAML 中以 {x:Static} 引用。
- InputBinding:KeyBinding 支持 Key 与 Modifiers(如 Control、Control+Shift、Alt),MouseBinding 支持 LeftDoubleClick、MiddleClick、LeftClick 加 Modifiers。
- CommandParameter:支持静态值、Binding 绑定(如 SelectedItem)与 RelativeSource Self 自引用。
- CommandTarget:可将命令重定向到指定元素,如让按钮操作 TextBox。
- 键盘输入:PreviewKeyDown(隧道)与 KeyDown(冒泡)事件,Keyboard.Modifiers 组合键判断,PreviewTextInput 限制输入(如仅数字)。
- 鼠标输入:MouseLeftButtonDown、MouseMove、MouseLeftButtonUp、MouseWheel,CaptureMouse/ReleaseMouseCapture 捕获鼠标,e.ClickCount 检测双击,e.Delta 判断滚轮方向。
- 焦点管理:Focus()、Keyboard.Focus()、IsFocused、IsKeyboardFocused,以及 FocusManager.FocusedElement 与 IsFocusScope。
使用方式:在 XAML 中声明 CommandBindings、InputBindings,在代码后置中实现 Executed/CanExecute 处理程序;自定义命令定义在静态类中并通过 x:Static 引用。
适用场景:WPF 桌面应用的菜单、工具栏、快捷键、鼠标手势与焦点控制。
限制:资料未提供具体版本要求、性能数据或收费信息;示例基于 .NET WPF,需自行适配项目结构。