我在初始化组件中尝试了Keyboard.Focus()。不起作用。
我点击按钮打开一个新窗口,接受用户的输入。我希望用户能够立即开始打字,而不必先点击文本框然后再打字。
有什么简单的方法可以得到这个甜甜圈
尝试在窗口的Loaded
事件中执行此操作。而且,据我所知,简单地使用MyTextBox.focus()
应该会使它同时关注逻辑和键盘。
让它变得简单。
<Window FocusManager.FocusedElement="{Binding ElementName=SomeElement}">
<TextBox x:Name="SomeElement"/>
...
</Window>
管理焦点很难!在不涉及细节的情况下,这是关于按照正确的顺序完成事情,我过去是否成功地使用了蛮力方法:
在窗口的Loaded
事件中:
Application.Current.Dispatcher.BeginInvoke(DispatcherPriority.ApplicationIdle, new Action(() =>
{
myTextBox.Focus();
Keyboard.Focus(myTextBox);
FocusManager.SetFocusedElement(myWindow, myTextBox);
});