Problem Overview:
Anyone KeyBinding
defined at a higher level TextBox
(without modifier keys assigned) does not allow the user to enter these keys internally TextBox
.
Minimum XAML hierarchy:
<Window>
<UserControl>
<Border>
<UserControl>
<TextBox>
Minimum command / KeyBinding:
<UserControl.Resources>
<RoutedUICommand x:Key="Commands.SomeCommand" />
</UserControl.Resources>
<UserControl.InputBindings>
<KeyBinding Key="A" Command="{StaticResource Commands.SomeCommand} />
</UserControl.InputBindings>
<UserControl.CommandBindings>
<CommandBinding Command="{StaticResource Commands.SomeCommand}" Executed="..." />
</UserControl.CommandBindings>
Command
KeyBinding
UserControl
. , , A
, . , TextBox.KeyDown
TextBox.PreviewKeyDown
, A
( Handled = false
), TextBox.PreviewTextInput
.
, , TextBox - , .
EDIT:
Snoop .
TextBox.PreviewKeyDown
, Window TextBoxTextBox.KeyDown
, TextBoxTextBox.KeyDown
Handled true UserControl, KeyBinding.TextBox.PreviewTextInput
, , KeyDown .
, UserControl , ? , , .