如何制作WPF TextBox传递ApplicationCommands?

时间:2011-10-27 17:30:14

标签: wpf

WPF TextBox捕获Ctrl-Z和Ctrl-Y以进行自己的撤消/重做。通常很棒,但在我们的应用程序中,我们有一些文本框,我不希望有这种行为,而是转而通过整个应用程序来处理全局撤消。

我发现我可以通过为ApplicationCommands.Undo / Redo添加CommandBindings来覆盖文本框对这些文件框的处理。

我的问题:如何将这些绑定“转发”到父框架元素,以便它最终路由到我在主窗口上安装的应用程序处理程序?

更新:感谢AndrewS,事实证明我需要的是将IsUndoEnabled设置为false。然后app命令被忽略,顶级窗口可以处理它们。耶!

1 个答案:

答案 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>