我目前在wpf c#中有一个列表框,并将一些键绑定添加到主窗口的keydown事件处理程序中。它是空格键和向上/向下键的事件处理程序。但是,当我的列表框具有焦点时,不会启动这些绑定。如何为此控件禁用这些默认键绑定(不输入e.handle = true以便禁用整个键击)并运行我自己的代码?
答案 0 :(得分:1)
默认的键绑定不直接使用事件,而是使用命令。您可以做的是定义命令并将事件附加到它们。
<Window.Resources>
<CommandBinding x:Key="NewBinding" Command="ApplicationCommands.New"
Executed="NewCommand" CanExecute="CanExecuteNew">
</CommandBinding>
</Window.Resources>
<ListBox.CommandBindings>
<StaticResource ResourceKey="NewBinding"></StaticResource>
</ListBox.CommandBindings>
要覆盖默认键绑定,语法为:
<Window.InputBindings>
<KeyBinding Key="" Modifiers="" Command="" />
</Window.InputBindings>
如果您是初次使用此功能,请尝试获取一些概述WPF Commanding Overview和Advanced WPF,您将很难通过事件进行操作。