我在XAML中定义了一个组合框,如下所示:
<ComboBox x:Name="CmbDate" Width="100" Height="20" IsEditable="True"
PreviewKeyDown="CmbDate_PreviewKeyDown"></ComboBox>
我还定义了一种方法,该方法在下面的代码中侦听PreviewKeyDown事件
private void CmbDate_PreviewKeyDown(object sender, KeyEventArgs e)
{
base.OnPreviewKeyDown(e);
if(e.Key == Key.Up || e.Key == Key.Down)
{
if (sender is ComboBox)
{
ComboBox cmb = sender as ComboBox;
cmb.Focus();
cmb.IsDropDownOpen = true;
}
}
}
但是当我按下向上或向下箭头键时,PreviewKeyDown事件永远不会触发。
但是,如果我按向左或向右箭头键,则会引发PreviewKeyDown。 有什么正确的方法可以实现我想要的吗?
还是组合框控件的默认行为,我们必须作弊/骇客?