按tab键wpf时出错
本文关键字:出错 wpf tab | 更新日期: 2023-09-27 17:49:17
我有一个简单的窗口,其中包括两个字段:
<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"/>
当我按下键盘上的tab键时,我可以切换到下一个字段,但是一旦我到达最后一个字段,如果我再次按下键,我就会在"MyApplication"上出现异常。运行":
System.InvalidOperationException : Targettype button does not correspond to Control Element
Stacktrace : System.Windows.Style.CheckTargetType(Object element)
这个错误发生在我所有的windows/UC上,即使没有任何字段(只是文本块)
我不知道怎么解决这个问题
我在模态对话框中得到类似的错误。为了调试,我向对话框添加了一个PreviewLostKeyboardFocus事件处理程序。检查KeyboardFocusChangedEventArgs NewFocus属性告诉我焦点更改在哪个控件上遇到了问题。
对我来说,它发生在从关闭按钮切换到对话框中的TabItem时。为了解决这个问题,我设置了KeyboardNavigation。TabItem上的IsTabStop="false",这样在改变焦点时,按tab键会忽略TabItem。我的TabItem看起来像这样:
<TabItem Name="MyTab" Header="Test Header" VerticalContentAlignment="Stretch"
VerticalAlignment="Stretch" Height="Auto" KeyboardNavigation.IsTabStop="False">
可能有更好的解决方案,但这可以防止异常。