Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    [WPF] Impodtare una shortcut su MenuItem

    ciao!

    ho letto vari esempi in giro di come impostare una scorciatoria da tastiera su un MenuItem, però non riesco a farla funzionare.
    questo il mio ultimo tentativo:
    codice:
    <Window x:Class="B2B.MainWindow"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            Title="B2B" Height="800" Width="800" WindowStartupLocation="CenterScreen" ResizeMode="NoResize">
        <Window.InputBindings>
            <KeyBinding Key="Q" Modifiers="Control" Command="ApplicationCommands.Close" />
        </Window.InputBindings>
        <DockPanel>
            <Menu DockPanel.Dock="Top">
                <MenuItem Header="_File" Name="File">
                    <Separator />
                    <MenuItem Header="_Exit" Name="Exit" Click="MenuItem_Click" InputGestureText="Ctrl+Q" />
                </MenuItem>
            </Menu>
            <DataGrid />
        </DockPanel>
    </Window>
    se uso il mouse, il programma si chiude senza problemi.
    se invece provo ad usare la combinazione Ctrl+Q non succede nulla.
    qualche idea?

  2. #2
    ho risolto.
    quello che mi serviva era chiudere il programma con Ctrl+Q.
    ho fatto cosi:
    codice:
    <Window x:Class="B2B.MainWindow"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            Title="B2B" Height="800" Width="800" WindowStartupLocation="CenterScreen" ResizeMode="NoResize">
        <Window.InputBindings>
            <KeyBinding Modifiers="Control" Key="Q" Command="{Binding exitCmd}" />
        </Window.InputBindings>
        ..........................
    </Window>
    poi nella corrispettiva classe:
    codice:
       public MainWindow()
            {
                InitializeComponent();
                AddKeys();
            }
    
            private void AddKeys()
            {
                RoutedCommand exitCmd = new RoutedCommand();
                exitCmd.InputGestures.Add(new KeyGesture(Key.Q, ModifierKeys.Control));
                CommandBindings.Add(new CommandBinding(exitCmd, ExitHandler));
            }
    
            private void ExitHandler(object sender, ExecutedRoutedEventArgs e)
            {
                this.Close();
            }
    ciao!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.