【问题标题】:Multiple KeyBinding like Visual Studio in WPFWPF 中的多个 KeyBinding,如 Visual Studio
【发布时间】:2013-04-16 16:39:01
【问题描述】:

我尝试阅读 StackOverflow 上的许多帖子,了解如何像 Visual Studio Ctrl+Shift+ACtrl+K,Ctrl+C 那样实现 KeyBinding,但没有运气

我在 blogspot 上找到了this 上关于多重键绑定的文章,但它会产生多个手势,例如 Ctrl + A,B

是否可以通过 XAML Syantax 制作像 (VS Studio) 这样灵活的键绑定。

【问题讨论】:

  • Ctrl+A,B 中的逗号是什么意思...是指当您按下 Ctrl+A 或 Ctrl+B 时执行的命令?还是说当您按 Ctrl+AB 时该命令应该执行?对于像“Ctrl+Shift+...”这样的多个修饰符,作为您提供的“文章”的一部分发布的源代码,可以很容易地使用\修改是吗?
  • 是的,我尝试为修饰符创建一个数组,但它不起作用。而 Ctrl + A,B 表示先按 Ctrl 再按 A 再按 B
  • @AngelWPF 我目前没有 Myremote 系统的访问权限,我会用我尝试过的方式回复你(我目前也没有访问 blogspot 的权限:))
  • 这个词被称为“和弦”顺便说一句,可能有助于未来的搜索。您可能需要创建一个可以绑定到许多键组合的命令绑定,这些组合键在执行之前等待一个完整的和弦。框架中没有任何内容。
  • @Will 感谢您的信息......

标签: wpf mvvm key-bindings


【解决方案1】:

VS 之类的序列键组合本身并不是 WPF 和大多数其他 UI 框架的一部分。原因是这样的组合来自侏罗纪时代的文本编辑器,并且仅在少数现代环境中存在,所述时代的用户仍然生存甚至茁壮成长。 ;-)

您应该能够以相当直接的方式为此提供自己的处理机制:

  • 构建一种机制来解析和表示这些组合。
  • 提供识别序列开头并进入复合键模式的键处理逻辑
  • 在组合模式下向用户提供提示
  • 在组合模式下调整您的按键处理方式

理想情况下,您会将这些连击命令关联起来,这样单打和连击之间就不会出现差异。

【讨论】:

  • 我想为“侏罗纪”这个词+10,我笑得很厉害:) 你敢再这样做! :P
【解决方案2】:
    <KeyBinding x:Name="mykeybinding" Gesture="CTRL+E" Key="P" 
                Command="commandname"/>

对我来说似乎工作正常,您必须按 ctrl+E+P 才能执行命令。

基于 http://msdn.microsoft.com/en-in/library/system.windows.input.keybinding.aspx

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-02
    • 1970-01-01
    • 2011-04-10
    • 2013-12-02
    • 2010-10-16
    • 2015-04-01
    • 1970-01-01
    相关资源
    最近更新 更多