Wpf 按钮没有获得焦点

Wpf 按钮没有获得焦点,wpf,vb.net,focus,Wpf,Vb.net,Focus,我有一个文本框,一个数据网格和一个按钮 当textbox获得焦点时,DataGrid可见。 用户在文本框中写入一些文本,并选择DataGrid第一列中的匹配文本 当用户按下enter键时,选定行的第一列的值被传输到文本框,然后DataGrid隐藏,文本框下方的按钮获得焦点。代码如下: If e.Key = Key.Return Then Dim ue As FrameworkElement = e.OriginalSource txt.Text = DataGrid1.Selec

我有一个文本框,一个数据网格和一个按钮

当textbox获得焦点时,DataGrid可见。 用户在文本框中写入一些文本,并选择DataGrid第一列中的匹配文本

当用户按下enter键时,选定行的第一列的值被传输到文本框,然后DataGrid隐藏,文本框下方的按钮获得焦点。代码如下:

If e.Key = Key.Return Then
    Dim ue As FrameworkElement = e.OriginalSource
    txt.Text = DataGrid1.SelectedItem(0).ToString
    ue.MoveFocus(New TraversalRequest(FocusNavigationDirection.Next))
End If
这段代码运行良好。当用户按下
Ctrl+向下箭头时,我想要相同的行为

下面是执行此操作的代码,但它不起作用。我的意思是它选择所选行的第一列的值并将其传输到文本框。但它不会将焦点转移到按钮上。我的意思是文本框不会失去焦点

If (Keyboard.IsKeyDown(Key.LeftCtrl) = True Or Keyboard.IsKeyDown(Key.RightCtrl) = True) And e.Key = Key.Down Then
    Dim ue As FrameworkElement = e.OriginalSource
    txt.Text = DataGrid1.SelectedItem(0).ToString
    ue.MoveFocus(New TraversalRequest(FocusNavigationDirection.Down))
End If

在上面的代码中,我尝试了单词
Next
而不是
Down
,但它一直不起作用。

我更喜欢
OrElse
以及
布尔运算符。刚才尝试过,但没有感觉到任何变化。代码被击中了吗?文本框通常处理箭头键。如果被命中,movefocus调用是否成功?在这种情况下,必须将焦点向后移动。是的,代码正在被点击,但焦点没有改变。现在我在设计器中插入了一个新按钮。按enter键时,我将焦点转到旧按钮,按ctrl+向下箭头键时,我将焦点转到新按钮。这就是奇怪的行为。