我需要有逻辑来处理元素的GotKeyboardFocus
事件,并区分它是由Tab键还是其他方式触发的。但是我知道只有广义事件GotKeyboardFocus
。如何通过按事件处理程序方法内的Tab键来检测是否收到焦点?还是还有其他事件?
答案 0 :(得分:2)
您必须订阅GotFocus
或GotKeyboardfocus
事件,然后检查按键是否存在:
<TextBox GotFocus="UIElement_OnGotFocus"/>
在处理程序中:
if (Keyboard.PrimaryDevice.IsKeyDown(Key.Tab))
{
// Do something when Tab is pressed
}
也许您想扩展TextBox类来处理此事件,而不在XAML中附加事件处理程序。
public class CustomTextBox : TextBox
{
protected override void OnGotFocus (System.Windows.RoutedEventArgs e)
{
if (Keyboard.PrimaryDevice.IsKeyDown(Key.Tab))
{
// Do something when Tab is pressed
}
}
}