У меня есть приложение Visual FoxPro 9, из которого я вызываю окно wpf, используя COM-взаимодействие. При первом нажатии клавиши TAB фокус возвращается к окну FoxPro. Если я возвращаюсь к окну wpf, это происходит снова, пока я не сделаю это в третий раз, и тогда фокус будет работать нормально. Это происходит с помощью мыши или Alt + Tab, чтобы вернуться в окно wpf. Это происходит независимо от того, есть ли какой-либо элемент (текстовое поле, указатель даты, ...) или нет.
Я попытался захватить событие PreviewKeyDown окна, но кажется, что это происходит до того, как он может его захватить. Я протестировал окно wpf в приложении wpf, и оно работает нормально.
Класс C Sharp подобен:
[ClassInterface(ClassInterfaceType.AutoDispatch)]
[ProgId("SBN.WPF.Com")]
[ComVisible(true)]
public class WpfFoxPro
{
и вызовы FoxPro имеют вид:
oDll = Createobjectex("SBN.WPF.Com", "", "")
oDll.VOpenWPFWindow()
Я использую Visual Studio 2010 и .Net 4.0, и у меня заканчиваются идеи. Кто-нибудь знает что-нибудь об этом?