如何让文本框同时监听按键事件和 InputBinding
How can I make a textbox listening to a Keypress-Event and an InputBinding together
我在我的 WPF 程序中创建了一个登录站点,您可以在其中输入您的凭据,然后按 Enter 或下面的按钮。该按钮有一个命令(用于视图模型绑定)和一个点击事件(我在代码隐藏中得到了一个 AutoResetEvent,如果登录在一秒钟内不成功,它会摇动文本框)。
现在我对文本框进行了同样的尝试:命令和事件。所以这是我现在的文本框:
<TextBox Margin="0,0,0,10" Text="{Binding Username}" KeyDown="MainWindow_KeyDown">
<TextBox.InputBindings>
<KeyBinding
Key="Enter"
Command="{Binding KeyPressCommand}" />
</TextBox.InputBindings>
</TextBox>
这是我的按钮:
<Button Command="{Binding ConnectCommand}" Content="Connect" Background="#E9712F" Margin="0,10,0,0" FontFamily="Arial" FontWeight="Bold" Foreground="White" Cursor="Hand" Click="Button_Click"/>
按钮有效,触发事件并发送命令。但是文本框完全忽略了事件,只是将命令发送到视图模型。
有没有办法同时触发事件和命令?
而不是 KeyDown
事件使用 PreviewKeyDown
已更新
不会为通常由 WPF 处理的导航键引发 KeyDown
事件,但 PreviewKeyDown
事件也支持这些键。
可能有帮助:什么是 WPF 预览事件?
我在我的 WPF 程序中创建了一个登录站点,您可以在其中输入您的凭据,然后按 Enter 或下面的按钮。该按钮有一个命令(用于视图模型绑定)和一个点击事件(我在代码隐藏中得到了一个 AutoResetEvent,如果登录在一秒钟内不成功,它会摇动文本框)。
现在我对文本框进行了同样的尝试:命令和事件。所以这是我现在的文本框:
<TextBox Margin="0,0,0,10" Text="{Binding Username}" KeyDown="MainWindow_KeyDown">
<TextBox.InputBindings>
<KeyBinding
Key="Enter"
Command="{Binding KeyPressCommand}" />
</TextBox.InputBindings>
</TextBox>
这是我的按钮:
<Button Command="{Binding ConnectCommand}" Content="Connect" Background="#E9712F" Margin="0,10,0,0" FontFamily="Arial" FontWeight="Bold" Foreground="White" Cursor="Hand" Click="Button_Click"/>
按钮有效,触发事件并发送命令。但是文本框完全忽略了事件,只是将命令发送到视图模型。
有没有办法同时触发事件和命令?
而不是 KeyDown
事件使用 PreviewKeyDown
已更新
不会为通常由 WPF 处理的导航键引发 KeyDown
事件,但 PreviewKeyDown
事件也支持这些键。
可能有帮助:什么是 WPF 预览事件?