您可能不知道这一点,但按下ComboBox
上的 F4 键会显示该下拉项目列表。我相信这是Windows上的默认行为。
有没有人知道如何在WPF(C#)中覆盖此行为?
我知道覆盖默认行为通常被视为不良行为,但在这种情况下,我有一个运行XP Embedded的坚固设备。它有一些突出的功能键( F1 - F6 )需要触发不同的事件。这样可以正常工作,但是当关注ComboBox
时,ComboBox
下降时不会触发事件。
我已经尝试在表单和KeyDown
上捕获ComboBox
事件并且正在侦听 F4 键,但它并没有像按键必须在较低级别处理。
有什么想法吗?
答案 0 :(得分:3)
我对XP Embedded不是很肯定,但对于普通的'XP',这是有效的。使用PreviewKeyDown,并将e.Handled设置为true:
public MyWindowOrControl()
{
InitializeComponent();
cboTest.PreviewKeyDown += new KeyEventHandler(cboTest_PreviewKeyDown);
}
void cboTest_PreviewKeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.F4)
e.Handled = true;
}
答案 1 :(得分:0)
你可以制作自己的ComboBox类,只是从旧的继承...你应该希望能够覆盖keydown / up方法。