toolbartray menus icon desplegable contextual context wpf menu keyboard-shortcuts

menus - toolbartray wpf



Forma correcta de crear un menĂº con accesos directos en WPF (2)

¿Cuál es la mejor / mejor forma de crear un menú con atajos de teclas rápidas?

Simplemente quiero un menú Archivo como Visual Studio que tiene Nuevo, Abrir, Guardar, Guardar todo, Salir y algunos otros atajos estándar.

Parece que InputGestureText muestra el texto apropiado, pero como se llama "Texto" y no parece desencadenar eventos, supongo que no es la forma correcta de hacerlo. La arquitectura de comandos también parece bastante voluminosa, por lo que no quiero ir por ese camino si hay una mejor manera.

Actualización: para mayor claridad, digamos que estoy usando el siguiente menú:

<Menu> <MenuItem Header="_File"> <MenuItem Header="_New" /> <MenuItem Header="_Open" /> <Separator /> <MenuItem Header="_Save" /> <MenuItem Header="Save _All" /> <Separator /> <MenuItem Header="_Export"/> <MenuItem Header="_Import"/> <Separator /> <MenuItem Header="E_xit"/> </MenuItem> </Menu>

donde Exportar e Importar serían atajos personalizados; algo que Microsoft no compiló en algo como ApplicationCommands. ¿Puede proporcionar una solución completa, incluido el código personalizado C # si es necesario? (No solo me ayudará, sino que espero ayudar a cualquier otra persona que esté buscando problemas similares).


Eche un vistazo a la clase ApplicationCommands . Obtiene los gestos de teclas estándar (aceleradores) y el texto de forma gratuita.

<MenuItem Command="ApplicationCommands.Paste" Width="75" />


Tiene razón al notar que InputGestureText no configura un acceso directo, simplemente lo etiqueta en el menú. La forma correcta de hacerlo es usar los Enlaces de entrada de la ventana. Puede asignar un atajo de teclado a cualquier comando, incluidos sus propios comandos definidos por el modelo. Pero para que esto funcione, debe usar los elementos del menú vinculados a los comandos, no manejar sus eventos de clic directamente. Esta es la forma recomendada de manejar los comandos de menú en WPF. De lo contrario, tendrá que recurrir al manejo de eventos del teclado a la antigua.

<Window.InputBindings> <KeyBinding Key="A" Modifiers="Control" Command="{Binding MyAwesomeCommand}" /> </Window.InputBindings>

Más información en MSDN.