如何以反应方式设置KeyBindings?

时间:2019-04-16 07:33:35

标签: c# wpf key-bindings reactiveui

我想知道如何以反应式方式设置KeyBindings(快捷方式)。我了解了reactui.events软件包,并且可以按照手册中的描述将其用于单键事件或序列。但是我一直坚持将其用于Ctrl + Up之类的功能。

我尝试了手册的k代码示例,但这是针对一系列按键事件的,不适用于Ctrl + Up之类的功能。

1 个答案:

答案 0 :(得分:1)

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!"));