Хостинг WPF в Win32

 
0
 
.NET
ava
Superklug | 20.06.2012, 12:56
Здравствуйте!

Мне необходимо разместить WPF UserControl в чужом окне, зная его Handle.

Пишу так:

_decorator = new AdornerDecorator { Child = _child };

var hwndSourceParameters = new HwndSourceParameters();
hwndSourceParameters.ParentWindow = parentWindowHandle;
hwndSourceParameters.PositionX = x;
hwndSourceParameters.PositionY = y;
hwndSourceParameters.Width = width;
hwndSourceParameters.Height = height;
hwndSourceParameters.WindowStyle = (int)(WindowStyle.WS_CLIPCHILDREN | WindowStyle.WS_TABSTOP | WindowStyle.WS_VISIBLE);
hwndSourceParameters.WindowClassStyle = 0x8;
hwndSourceParameters.ExtendedWindowStyle = 0;

if(parentWindowHandle != IntPtr.Zero) {
hwndSourceParameters.WindowStyle |= (int)(WindowStyle.WS_CLIPSIBLINGS | WindowStyle.WS_CHILD);
}
_hwndSource = new HwndSource(hwndSourceParameters);
_hwndSource.RootVisual = _decorator;


На первый взгляд все работает хорошо. WPF контент отображается. Но есть одна проблема: не обрабатываются нажатия Tab и стрелок. Все перепробовал, ничего не помогает(

Ради интереса попробовал создать ElementHost и затем вызвать SetParent. Все отлично работает... Как добиться этого используя HwndSource?

Очень надеюсь на Вашу помощь...
Comments (0)

Comments are not added

Please register or login to write.
Firm of day
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Contributors
advanced
Submit