如何制作WPF TextBox传递ApplicationCommands?

sco*_*obi 6 wpf

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

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

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

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

小智 10

您必须为快捷方式注册KeyBinding并将其与ApplicationCommands.NotACommand关联.例如

    <TextBox>
        <TextBox.InputBindings>
            <KeyBinding Key="Y" Modifiers="Control" Command="NotACommand" />
            <KeyBinding Key="Z" Modifiers="Control" Command="NotACommand" />
        </TextBox.InputBindings>
    </TextBox>
Run Code Online (Sandbox Code Playgroud)