2010-06-20 2 views
3

У меня есть элемент управления ActiveX внутри пользовательского элемента управления WinForms. Мое приложение WinForms любит его!Вход клавиатуры Trap в элементе управления WindowsFormsHost в WPF

Теперь, перейдя к WPF, я использую пользовательский элемент управления в элементе управления WindowsFormsHost. Отлично работает ..., но я хочу рассматривать этот элемент управления как один элемент, чтобы пользователь мог аккуратно удалять TAB поверх существующих элементов управления WPF. И этот пользовательский элемент управления НЕ должен «входить» в него. то есть просто рассматривать его как единый элемент управления, как и все остальные.

Я думаю, что мне нужна возможность улавливать ключи, а в обработчике событий просто перемещать фокус на следующий элемент управления в последовательности, но я не могу уловить любой ввод на клавиатуре. Ive пытался WPF PreviewKey .. события и т. П., Но как только вкладка попадает в элемент управления, он, кажется, остается внутри него, и события WPF игнорируются.

Я не мог найти что-либо на этом во многих книгах WPF и в сети. Может ли кто-нибудь предложить способ?

Thanks, Jack.

ответ

0

Не можете ли вы создать какой-либо фильтр, выполнив предварительный щелчок мыши на панели или окне (независимо от того, является ли родительский элемент элементов управления), таким образом панель поймает его перед пользовательским управлением, и вы должны установить e.handled to true, и если пользовательский элемент управления поднял событие вкладки, продолжайте нажимать фокус, пока не получите другой элемент управления. Предварительный просмотр и e.Handled = ture должны решить проблему.