我在WPF MVVM应用程序中卡住了。我的应用程序必须获得用户扫描的条形码数据(USB条码扫描器),并将扫描的数据与我的DB进行比较。我在屏幕上有一个文本框,我想持续关注这个文本框。用户可以在应用程序的任何地方,但回到主屏幕后,焦点实际上必须在同一个文本框。
我已经实现了
FocusManager.FocusedElement="{Binding ElementName=TextBox2}"
到我的代码文件,但它只在屏幕加载时工作。在做了另一个动作之后,注意力就失去了。我想让它在关闭另一个窗口或当他回到主屏幕后恢复焦点。
我试过给TextBox2.Focus();毕竟,行动已经完成,但对我不起作用。
您可以使用窗口中的PreviewKeyDown
并将焦点设置为TextBox
private void Window_PreviewKeyDown( object sender, KeyEventArgs e )
{
if ( !BarcodeTextBox.IsFocused && BarcodeTextBox.Focusable )
{
BarcodeTextBox.SelectAll();
BarcodeTextBox.Focus();
}
}
您可能想要过滤掉一些键,如f.i. ENTER等