Назначение клавиатурной комбинации на команду в WPF - CodeHelper

Назначение клавиатурной комбинации на команду в WPF

2

В XAML разметке следующим образом описана кнопка:

<Button Tag="..\Resources\Images\cross.png" ToolTip="Delete"
        Command="{Binding DeleteItemCommand}"
        CommandParameter="{Binding ElementName=_projectTreeView, Path=SelectedItem, Mode=OneWay}"/>

Где DeleteItemCommand - свойство презентера, хранящее в себе объект, реализующий System.Windows.Input.ICommand. Данная команда не является наследником RoutedCommand. Вопрос в том, как на данное действие назначить комбинацию клавиш.

В качестве наводки. Но как применить это в данном случае?

Лучший ответ:

1

В простых сценариях можно воспользоваться стандартным механизмом предоставляемым WPF:

<Window.InputBindings>
  <KeyBinding Key="D"
              Modifiers="Control" 
              Command="{Binding DeleteItemCommand}" 
              CommandParameter="{Binding ElementName=_projectTreeView, Path=SelectedItem, Mode=OneWay}"/>
</Window.InputBindings>

Если необходимо хранить сочетания клавиш отдельно от разметки, то можно написать свой класс наследник от InputBinding в котором реализовать необходимую логику. Я реализовывал похожую задачу, можно почитать здесь: Горячие клавиши в WPF

Если нужно зарегистрировать глобальные горячие клавиши, то об этом можно почитать в статье: Регистрация горячей клавиши (hotkey) в системе для WPF приложения

v1.7.123.556
© 2009—2010 CodeHelper FAQ | О сайте | Обратная связь | История изменений | Статьи
Creative Commons LicenseМатериалы сайта распространяются под лицензией Creative Commons Attribution-Share Alike 3.0 Unported.