I feel for you.... MFC and WPF don't play well when it comes to the keyboard. The best solution is to not mix controls! That said, other things you'll need to do to get tabbing kinda working: 1. Override pretranslate message in you App: BOOL CMyApp::PreTranslateMessage(MSG* pMsg) { if (System::Windows::Interop::ComponentDispatcher::RaiseThreadMessage(*reinterpret_castSystem::Windows::Interop::MSG\*(pMsg))) return true; else return CWinApp::PreTranslateMessage(pMsg); } 2. Implement IKeyboardInfoSite and handle OnNoMoreTabStops. Call the MFC dialogs NextDlgCtrl method and return true: In OnCreate: ((IKeyboardInputSink^) hwndWPF)->KeyboardInputSite = gcnew MyKeyboardInputSite(source); bool GKeyboardInputSite::OnNoMoreTabStops(TraversalRequest^ request) { if (request->FocusNavigationDirection == FocusNavigationDirection::Next) wpfDialog->NextDlgCtrl(); else wpfDialog->PrevDlgCtrl(); return true; } The only problem with this is that tabbing back into the WPF user control puts the focus on the last control (not the first). Yet to figure out the best way to overcome that one. Hope this helps