WPF TextBox captura Ctrl-Z y Ctrl-Y para su propio deshacer/rehacer. Normalmente genial, pero en nuestra aplicación tenemos algunos cuadros de texto que no quiero que tengan este comportamiento, sino que pasen a la aplicación general para manejarlos como deshacer global.¿Cómo hacer un WPF TextBox PassThrough ApplicationCommands?
Me di cuenta de que puedo anular el manejo de los cuadros de texto al agregar CommandBindings para ApplicationCommands.Undo/Redo.
Mi pregunta: ¿cómo puedo 'reenviar' esos enlaces al elemento principal del framework para que finalmente se dirija al manejador de la aplicación que instalé en la ventana principal?
Actualización: Gracias a AndrewS resulta que todo lo que necesitaba era establecer IsUndoEnabled en falso. Luego los comandos de la aplicación son ignorados y la ventana de nivel superior puede manejarlos. ¡Hurra!
BTW puede que también quiera establecer IsUndoEnabled en falso para que no pierda memoria administrando su historial de deshacer. – AndrewS
Hola, eso es interesante. Ni siquiera sabía que NotACommand existía ... ¿Por curiosidad, cómo se haría esto localizable? (Supongo que los teclados chinos no usan Ctrl + Z para Deshacer.) – scobi
No conozco ninguna buena forma de conseguirlo. Si observas el método System.Windows.Input.ApplicationCommands.LoadDefaultGestureFromResource (por ejemplo, en reflector/uispy) están obteniendo la clave de sus propios recursos, pero no sé si la muestran. Probablemente necesites obtener los InputGestures de ApplicationCommand. (Deshacer | Rehacer) y luego agregar dinámicamente los InputBindings. Es posible que pueda hacer eso en su propio comportamiento adjunto. – AndrewS