SuperAPI AI 工具集

handling-wpf-input-commands

通用与其它

查看项目

更新于 10-15 20:12

技能介绍

用途:在 WPF 应用中处理用户输入并实现命令模式,覆盖键盘快捷键、菜单命令、鼠标交互与焦点管理。

主要能力:

  1. 命令系统:ICommand 接口、WPF 内置 RoutedCommand(ApplicationCommands、NavigationCommands、MediaCommands、EditingCommands)以及 MVVM 常用的 RelayCommand/DelegateCommand。
  2. 内置命令:通过 CommandBinding 绑定 Executed 与 CanExecute,例如 ApplicationCommands.Copy、Paste、Undo、Redo。
  3. 自定义 RoutedCommand:用 InputGestureCollection 定义 KeyGesture,如 F5、Ctrl+R、Ctrl+Shift+E、F11,并在 XAML 中以 {x:Static} 引用。
  4. InputBinding:KeyBinding 支持 Key 与 Modifiers(如 Control、Control+Shift、Alt),MouseBinding 支持 LeftDoubleClick、MiddleClick、LeftClick 加 Modifiers。
  5. CommandParameter:支持静态值、Binding 绑定(如 SelectedItem)与 RelativeSource Self 自引用。
  6. CommandTarget:可将命令重定向到指定元素,如让按钮操作 TextBox。
  7. 键盘输入:PreviewKeyDown(隧道)与 KeyDown(冒泡)事件,Keyboard.Modifiers 组合键判断,PreviewTextInput 限制输入(如仅数字)。
  8. 鼠标输入:MouseLeftButtonDown、MouseMove、MouseLeftButtonUp、MouseWheel,CaptureMouse/ReleaseMouseCapture 捕获鼠标,e.ClickCount 检测双击,e.Delta 判断滚轮方向。
  9. 焦点管理:Focus()、Keyboard.Focus()、IsFocused、IsKeyboardFocused,以及 FocusManager.FocusedElement 与 IsFocusScope。

使用方式:在 XAML 中声明 CommandBindings、InputBindings,在代码后置中实现 Executed/CanExecute 处理程序;自定义命令定义在静态类中并通过 x:Static 引用。

适用场景:WPF 桌面应用的菜单、工具栏、快捷键、鼠标手势与焦点控制。

限制:资料未提供具体版本要求、性能数据或收费信息;示例基于 .NET WPF,需自行适配项目结构。