覆盖列表框中的默认键绑定

时间:2010-08-01 21:06:54

标签: c# wpf

我目前在wpf c#中有一个列表框,并将一些键绑定添加到主窗口的keydown事件处理程序中。它是空格键和向上/向下键的事件处理程序。但是,当我的列表框具有焦点时,不会启动这些绑定。如何为此控件禁用这些默认键绑定(不输入e.handle = true以便禁用整个键击)并运行我自己的代码?

1 个答案:

答案 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 OverviewAdvanced WPF,您将很难通过事件进行操作。