制作一个"热键",将TextBox聚焦在WPF中

Vac*_*ano 8 .net wpf hotkeys

我正在尝试制作一个热键(即Ctrl + Y),将焦点更改为文本框.

我是德尔福的移植手术,这让我很困惑.在Delphi 5中,这非常简单.(在标签的标题上,您可以在要制作热键的字母之前添加&.在将标签指向TextBox后,热键将起作用.)

对于WPF,我看到WPF中的可怕示例涉及调用Win32调用或为每个热键(以及其他如此繁重的实现)发出命令.

我发现很难相信1999年推出的IDE和Languange版本(Delphi 5)有一个比Hotkey更简单的系统(比WPF更好).

当然我错过了一些东西.如果你知道,请告诉我它是什么.

Vac*_*ano 18

所以,我应该继续努力.我在问这个问题后不久就明白了.

他们这样做的方法是你创建一个标签并设置其内容(类似这样Content="_Years Of Service")

然后,将Label的Target绑定到文本框.(Target="{Binding ElementName=SomeTextBox}")

现在,如果按Alt + Y,它会将焦点移动到SomeTextBox.

这是完全绑定:

<Label Content="_Label" Target="{Binding ElementName=SomeTextBox}" />
<TextBox Name="SomeTextBox" />
Run Code Online (Sandbox Code Playgroud)

  • 除非您从代码中分配字符串,否则使用`SomeLabel.Content ="_ Label";`,下划线将按原样显示.正确的代码就像`SomeLabel.Content = new AccessText {Text ="_ Label"};` (5认同)