在我的(WPF MVVM)应用程序中实现条码扫描器



我在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等

最新更新