Как настроить KeyBindings реактивным способом? - PullRequest
1 голос
/ 16 апреля 2019

Хотелось бы узнать, как настроить привязки клавиш (горячие клавиши) реактивным способом.Я знаю о пакете Reactiontiveui.events и могу использовать его для событий или последовательностей с одним ключом, как описано в руководстве.Но я застрял при использовании его для чего-то вроде Ctrl + Up или чего-то в этом роде.

Я попробовал пример k-кода руководства, но это для последовательности ключевых событий и не работает для чего-то вроде Ctrl+ Up.

1 Ответ

1 голос
/ 16 апреля 2019

KeyUp возвращает IObservable<KeyEventArgs>, который вы можете создавать как обычно. Попробуйте это:

this.Events().KeyUp
    .Where(x => x.Key == Key.Up && (Keyboard.IsKeyDown(Key.LeftCtrl) || Keyboard.IsKeyDown(Key.RightCtrl)))
    .Subscribe(_ => MessageBox.Show("CTRL+Up detected!"));
...