2

我有这个简单的设置:

<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 时首先触发。那很奇怪。也许这是一个错误?

4

0 回答 0