Модераторы: gambit, Kefir, Partizan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Хостинг WPF в Win32 
:(
    Опции темы
Superklug
Дата 20.6.2012, 11:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 227
Регистрация: 16.6.2006

Репутация: нет
Всего: нет



Здравствуйте!

Мне необходимо разместить 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?

Очень надеюсь на Вашу помощь...
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | WPF и Silverlight | Следующая тема »


 




[ Время генерации скрипта: 0.0631 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.