WPF немодальный диалог из надстройки MS Excel - PullRequest
7 голосов
/ 03 мая 2011

Форма WPF, которую я запускаю из окна WinForms, показывается со всеми текстовыми полями как недоступные для редактирования при запуске в виде немодального диалога.Я использовал ElementHost.EnableModelessKeyboardInterop для решения этой проблемы, и это сработало там.

Я также открываю тот же интерфейс WPF из MS Excel в качестве надстройки.Хак EnableModelessKeyboardInterop там не работает.Всякий раз, когда я пытаюсь редактировать свое текстовое поле WPF, фокус смещается на Excel, и ввод с клавиатуры отображается в Excel, а не в моем текстовом поле WPF.Любые идеи о том, как это исправить?

PS - Это продолжение моего предыдущего вопроса о SO: немодальное диалоговое окно WPF делает текстовое поле недоступным для редактирования

1 Ответ

8 голосов
/ 04 мая 2011

Решено, благодаря этой ссылке: Запуск приложения WPF с несколькими потоками пользовательского интерфейса

         var thread = new Thread(() =>
            {
                var wpfWindow = new WPFWindow();
                wpfWindow.Show();
                wpfWindow.Closed += (sender2, e2) => wpfWindow.Dispatcher.InvokeShutdown();

                Dispatcher.Run();
            });

            thread.SetApartmentState(ApartmentState.STA);
            thread.Start();
...