wpf -shorcut для кнопки изображения - PullRequest
1 голос
/ 10 августа 2010

В моем окне wpf у меня есть кнопка с изображением. Кто-нибудь знает, как назначить ярлык для этой кнопки, как "Cntrl + O".

Я могу поставить "_", чтобы вызвать щелчок по обычной кнопке.

<Button Margin="89,73,114,106" Name="button1" Click="button1_Click">
        <StackPanel Name="_StackPanel">
            <Image Source="image.png" ></Image>
        </StackPanel>            
    </Button>

1 Ответ

1 голос
/ 11 августа 2010

В WPF общие сочетания клавиш (в отличие от специального случая клавиш Alt) не назначаются кнопкам, а назначаются действиям.Если вам нужны и кнопка (или пункт меню, несколько кнопок и т. Д.), И команда клавиши для одного и того же действия, вы можете использовать одну команду для обоих.Для пользовательской RoutedCommand вы можете назначить KeyGestures для запуска команды:

    public static RoutedCommand MyCommand { get; private set; }

    static Window1()
    {
        MyCommand = new RoutedCommand("MyCommand", typeof(Window1), new InputGestureCollection { new KeyGesture(Key.O, ModifierKeys.Control) });
    }

    public Window1()
    {
        InitializeComponent();
        CommandBindings.Add(new CommandBinding(MyCommand, (_, e) => MessageBox.Show("Command fired")));
    }

, а затем также назначить ее в качестве команды кнопки:

<Button Content="Click Me" Command="{x:Static local:Window1.MyCommand}"/>
...