我有这个简单的设置:
<StackPanel>
<TextBox Text="wpf1" PreviewLostKeyboardFocus="TextBox_PreviewLostKeyboardFocus" />
<TextBox Text="wpf2" PreviewLostKeyboardFocus="TextBox_PreviewLostKeyboardFocus" />
<WindowsFormsHost>
<wf:TextBox Text="winforms" />
</WindowsFormsHost>
</StackPanel>
private void TextBox_PreviewLostKeyboardFocus(object sender, KeyboardFocusChangedEventArgs e)
{
e.Handled = true;
}
三个文本框,两个 WPF 和一个 WinForm。我无法在我想要的两个 WPF 文本框之间移动焦点,但我可以将焦点移动到 WinForm 文本框。PreviewLostKeyboardFocus
从 WPF 文本框移动到 WinForm 文本框时,甚至不会触发该事件。为什么以及如何解决这个问题的任何线索?
编辑
我注意到WindowsFormsHost.PreviewGotKeyboardFocus
当焦点再次离开 WindowsFormsHost 时首先触发。那很奇怪。也许这是一个错误?