[英]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 Overview和Advanced WPF,您將很難在事件上做到這一點。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.