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
http://stackoverflow.com/questions/1752494/detect-if-any-key-is-pressed-in-c-sharp-not-ab-but-any 看这个答案 –
这不能解决我的问题,因为我确实有窗体上的控件,可以有关键事件和类似的东西。我需要不管哪个控件将焦点集中到被拦截。 – Loogawa