Я не знаю, является ли это хорошим способом работы, но мне нужно обрабатывать все необработанные нажатия клавиш на моей ViewModel, поэтому моя идея состояла в том, чтобы использовать поведение в моем ShellView, которое бы передавало все необработанные нажатия клавиш на ViewModel .. 1001 *
Но проблема в том, как получить все необработанные нажатия клавиш?
Вот моя первая попытка просто поймать их
Public Class ForwardKeyBehavior
Inherits Behavior(Of DependencyObject)
Protected Overrides Sub OnAttached()
Keyboard.AddKeyDownHandler(Me.AssociatedObject, AddressOf OnKeyPressed)
Keyboard.AddPreviewKeyDownHandler(Me.AssociatedObject, AddressOf OnPreviewKeyPressed)
MyBase.OnAttached()
End Sub
Protected Overrides Sub OnDetaching()
Keyboard.RemoveKeyDownHandler(Me.AssociatedObject, AddressOf OnKeyPressed)
MyBase.OnDetaching()
End Sub
Private Sub OnPreviewKeyPressed(ByVal sender As Object, ByVal e As KeyEventArgs)
End Sub
Private Sub OnKeyPressed(ByVal sender As Object, ByVal e As KeyEventArgs)
If (Not e.Handled) Then
Trace.Write(e.Key.ToString())
End If
End Sub
End Class
Но, похоже, e.Handled всегда ложно, поэтому чего мне не хватает , даже если я нажимаю клавишу в текстовом поле ?