public class MyWindow
{
private static readonly RoutedCommand DummyEmptyCommand = new RoutedCommand("DummyEmptyCommand", typeof(MyWindow), new InputGestureCollection() { new KeyGesture(Key.F4) });
public MyWindow()
{
MyComboBox.CommandBindings.Add(new CommandBinding(DummyEmptyCommand, (o, e) =>
{
// Do your work here or simply leave it blank to disable F4 common behavior;
}));
}
}
2 回答
虽然我知道这个问题已经过时了,但是我写了一个棘手的解决方案(因为我没有在网上找到它)来解决这个问题:
我必须说这种行为不是一个错误,它是Windows上所有标准下拉(ComboBox)控件的常见操作 .
您可以使用
CommandBinding
在WPF中简单地覆盖它 .通过这种方式,您可以实现自己的替代工作,或者只是禁用标准的常见窗口行为 .
如果要在应用程序中禁用所有ComboBox,则可以执行此操作 . 在ComboBox应用程序范围内注册KeyDown . 您可以在应用程序启动时添加此语句(如果您使用的是MVVM,则为App.xaml.cs或AppBootStrapper)
请注意,这未经过测试 . 我使用类似的方法将TextBox移动重点放在enter上 .