簡體   English   中英

覆蓋列表框中的默認鍵綁定

[英]Override default keybindings in Listbox

我目前在wpf c#中有一個列表框,並向主窗口的keydown事件處理程序中添加了一些鍵綁定。 它是空格鍵和向上/向下鍵的事件處理程序。 但是,當我的列表框具有焦點時,不會啟動這些綁定。 如何為該控件禁用這些默認的鍵盤綁定(不輸入e.handle = true從而禁用整個鍵盤輸入)並運行自己的代碼?

默認的鍵綁定不直接使用事件,而是命令。 您可以做的是定義命令並將事件附加到它們。

<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,您將很難在事件上做到這一點。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM