我创建了一个继承自Combobox的类,该类是可编辑的。当用户搜索给定谓词时,我希望他们能够通过按下向下键来迭代列表。这有点实现,因为它偶尔工作。是否可以强制关注弹出元素?我想通过代码执行此操作,而不是在XAML中执行此操作。
我试过
var popup = Template.FindName("PART_Popup", this) as Popup;
popup.Focus();
返回错误,因为这不起作用。
我也试过
var s1 = Keyboard.FocusedElement;
if (s1 is FrameworkElement)
{
((FrameworkElement)s1).MoveFocus(new TraversalRequest(FocusNavigationDirection.Next));
}
但是这会关注TAB堆栈中的下一个元素。
这种焦点方法也不起作用,
Keyboard.Focus(popup);
我通过将动画设置为.None来解决(达到了预期的效果),然后关闭,然后再次打开弹出窗口。