WPF TextBox捕获Ctrl-Z和Ctrl-Y以进行自己的撤消/重做。通常很棒,但在我们的应用程序中,我们有一些文本框,我不希望有这种行为,而是转而通过整个应用程序来处理全局撤消。
我发现我可以通过为ApplicationCommands.Undo / Redo添加CommandBindings来覆盖文本框对这些文件框的处理。
我的问题:如何将这些绑定“转发”到父框架元素,以便它最终路由到我在主窗口上安装的应用程序处理程序?
更新:感谢AndrewS,事实证明我需要的是将IsUndoEnabled设置为false。然后app命令被忽略,顶级窗口可以处理它们。耶!
答案 0 :(得分:10)
您必须为快捷方式注册KeyBinding并将其与ApplicationCommands.NotACommand关联。 e.g。
<TextBox>
<TextBox.InputBindings>
<KeyBinding Key="Y" Modifiers="Control" Command="NotACommand" />
<KeyBinding Key="Z" Modifiers="Control" Command="NotACommand" />
</TextBox.InputBindings>
</TextBox>