我有一个使用DataTemplate的ItemsControl。 DataTemplate包含一个TextBox,可以接收键盘焦点。我需要能够将键盘焦点从DataTemplate中当前聚焦的TextBox移动到下一个TextBox,就像按下Tab键一样。我注意到有一个UIElement.MoveFocus()方法,但这引出了一个问题,即应该使用哪个UIElement来调用该方法。这可能是我没有让这种方法为我工作的原因......任何帮助都会非常感激!
谢谢,
安德鲁
答案 0 :(得分:2)
您应该可以在Window(或Page上调用MoveFocus方法,具体取决于您的顶级容器)。
this.MoveFocus(new TraversalRequest(FocusNavigationDirection.Next));
这将告诉WPF将焦点移动到下一个控件,或者使用控件上的TabIndex属性,或者只是自然地向下和向下移动以找到下一个逻辑控件。
如果不能直接在ItemsControl上调用MoveFocus(给它起一个名字,并在上面的代码中用该名称替换“this”)。