C# 按tab键wpf时出错

C# 按tab键wpf时出错,c#,wpf,C#,Wpf,我有一个简单的窗口,其中包括两个字段: <TextBox Grid.Column="1" HorizontalAlignment="Left" Height="21" Margin="10,25,0,0" Grid.Row="1" Name="textbox_login" TextWrapping="Wrap" Text="" VerticalAlignment="Top" Width="227" KeyDown="textbox_login_KeyDown"/>

我有一个简单的窗口,其中包括两个字段:

<TextBox Grid.Column="1" HorizontalAlignment="Left" Height="21" Margin="10,25,0,0" Grid.Row="1" Name="textbox_login" TextWrapping="Wrap" Text="" VerticalAlignment="Top" Width="227" KeyDown="textbox_login_KeyDown"/>
            <PasswordBox Grid.Column="1" HorizontalAlignment="Left" Height="22" Margin="10,25,0,0" Grid.Row="2" Name="passwordBox_mdp" VerticalAlignment="Top" Width="227" KeyDown="passwordBox_mdp_KeyDown"/>
此错误发生在我的所有windows/UC上,即使没有任何字段(只有文本块)


我根本不知道如何解决这个问题。

我在模式对话框中遇到了类似的错误。为了调试,我在对话框中添加了PreviewLostKeyboardFocus事件处理程序。通过检查KeyboardFocusChangedEventArgs NewFocus属性,我知道焦点更改在哪个控件上遇到了问题

对我来说,它发生在从关闭按钮切换到对话框中的选项卡项时。为了解决这个问题,我在TabItem上设置了KeyboardNavigation.IsTabStop=“false”,这样在改变焦点时点击tab键就会忽略TabItem。我的选项卡项如下所示:

<TabItem Name="MyTab" Header="Test Header" VerticalContentAlignment="Stretch"
 VerticalAlignment="Stretch" Height="Auto" KeyboardNavigation.IsTabStop="False">


可能有更好的解决方案,但这可以防止出现异常。

在这些KeyDown处理程序中您做什么?我在这个窗口中只有2个KeyDown处理程序:private void textbox\u login\u KeyDown(object sender,KeyEventArgs e){if(e.Key==Key.Enter){valider();}private void passwordBox_mdp_KeyDown(object sender,KeyEventArgs e){if(e.Key==Key.Enter){valider();}}如果您注释掉那些调用
valider()
,错误是否消失?不,错误也会出现在没有任何KeyDown处理程序的窗口上。
<TabItem Name="MyTab" Header="Test Header" VerticalContentAlignment="Stretch"
 VerticalAlignment="Stretch" Height="Auto" KeyboardNavigation.IsTabStop="False">