Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > WPF и Silverlight > Как правильно отреагировать на клавишу на клаве?


Автор: Dims 1.2.2011, 17:30
Допустим, у меня в программе есть нарисованная кнопка, которую можно нажать мышью и всё работает.

Теперь я хочу, чтобы эта кнопка нажималась при нажатии определённой клавиши на клавиатуре. Как это сделать?

Есть ли тут какая-нибудь абстракция типа "команды", к которой я мог бы привязывать и экранные кнопки и кейстроуки?

Автор: AVX 1.2.2011, 18:54
Код

Window.KeyDown="Window_KeyDown"



Код

        private void Window_KeyDown(object sender, System.Windows.Input.KeyEventArgs e)
        {
            if (e.Key == Key.B)
            {

            }
        }

Автор: Dims 1.2.2011, 20:38
А по-другому? С помощью каких-нибудь бихейверов или триггеров?

И нет ли абстракции команды?

Автор: AVX 2.2.2011, 14:12
Можно так
Код

public static RoutedCommand MyCommand = new RoutedCommand();
CommandBinding cb = new CommandBinding(MyCommand, MyExecutedCommand);
KeyGesture kgDel = new KeyGesture(Key.Delete);
KeyBinding kbDel = new KeyBinding(MyCommand, kgDel);
this.InputBindings.Add(kbDel);

Автор: SergeyLoginov 3.2.2011, 17:39
Цитата

Есть ли тут какая-нибудь абстракция типа "команды", к которой я мог бы привязывать и экранные кнопки и кейстроуки? 

Эммм... А может стоит использовать команду (RoutedCommand)? smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)