2013-12-10 112 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

回答

相關問題