2013-12-10 67 views
0

在WPF中,如果按下键盘的右侧或左侧方向,就可以触发事件,现在问题是哪个控件具有焦点?在WPF中,如何检测任何点的按键/按下事件

无论形式中的哪个地方有焦点或他们在做什么,我都需要发生一些事情,如果右或左击中。

是否有必要追查每个键盘通知(KeyDown和KeyUp事件)?

编辑:

欲了解更多信息,我有一个滑块,我需要通过左右键在任何时候控制。我还有一个需要打开的组合框。我尝试使用这个代码,但它阻止我从使用ComboBox:

Private Sub sldDays_IsKeyboardFocusedChanged(sender As Object, e As System.Windows.DependencyPropertyChangedEventArgs) Handles sldDays.IsKeyboardFocusedChanged 
    Keyboard.Focus(sldDays) 
End Sub 

编辑2:

如果有人在这跌倒在未来,我想我解决我的问题:

我把这个方法PreviewKeyDown事件(这使得它总是先去为重点,下)

<Window x:Class="MainWindow" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    PreviewKeyDown="sliderKey" 

那么这是事件:

Private Sub sliderKey(sender As System.Object, e As KeyEventArgs) 
    Try 
     If e.Key = Key.Right Then 
      sldDays.Value += 1 
     ElseIf e.Key = Key.Left Then 
      sldDays.Value -= 1 
     End If 
    Catch ex As Exception 
     MessageBox.Show(ex.Message) 
    End Try 
End Sub 
+1

http://stackoverflow.com/questions/1752494/detect-if-any-key-is-pressed-in-c-sharp-not-ab-but-any 看这个答案 –

+0

这不能解决我的问题,因为我确实有窗体上的控件,可以有关键事件和类似的东西。我需要不管哪个控件将焦点集中到被拦截。 – Loogawa

回答

相关问题